常用操作
git 操作
拉取代码相关
- git clone -b “分支名称” ssh
- git pull 、git clone origin 远程分支名:本地分支名、git clone origin 远程分支名
分支相关
- git checkout 分支名 切换分支
- git checkout -b 分支名 生成新分支
- git branch 查看分支
提交相关
- git status 查看当前git状态
- git add 提交工作区修改到暂存区,可以提交单独的文件
- git commit 提交暂存区到历史记录
版本控制相关
- git log 显示commit日志
- git reflog 显示HEAD日志,可以显示删除的commit
- git reset 后面加commit提交记录编号,回退版本,–hard 删除工作区修改 --soft 保留工作区修改
- git reset HEAD^ 回退一个版本,后边加数字回退多个版本git reset HEAD^4
- git reset HEAD~ 类似,~n==n个^ 存疑
- git reset 什么都不加可以撤销git add
技巧
1.多次commit记录合并
- 首先先将本地分支切换的需要合并的开发分支
- git checkout -b 新分支 基于开发分支新新建一个新分支
- git merge --squash 需要提交的分支 将提要提交的分支合并到当前的新分支中
squash的意思是,将合并分支所有的commit修改作用到合并分支中,不会保留仍和commit记录,此时新分支就有了之前分支的所有修改,提交一个新的commit即可达到合并commit的作用,然后将原来的分支删掉,将现在的分支名修改一下强制提交就可以覆盖原来的分支让mr更清爽~
2. 在merge之前可以 git pull --rebase dev.1 然后再merge可以让merge更舒服
git 强大且复杂,全部弄懂,大成
特殊命令
- git stash 暂存工作区修改,可以在有未提交内容时切换到别的分支
- git stash list 列出暂存记录
- git stash pop 取出暂存记录并删除
- git stash apply 取出暂存记录但不会删除记录,默认取出最近一次,可以指定git stash apply stash@{1},
- git stash drop 删除暂存记录
- git rebase 有两个作用
- 没有提交到公共仓库前合并本地的提交记录
git rebase -i start_point end_point 默认end_point 不用写,直接从start_point到最新
git rebase -i HEAD~n n是rebase几次的提交,HEAD 相当于end_point - 合并分支
git rebase devel 就是把当前分支和devel分支合并,类似于merge ,但是不会不留原来的commit记录,需要重新提交
git rebase commit_id ???
- 没有提交到公共仓库前合并本地的提交记录
- cherry-pick 摘取部分提交合入
git cherry-pick commitid1^…commitid2 如果不加 ^前开后闭