1. 回滚到某一提交,并删除后续的提交记录
git reset --hard cfec6ff git push origin HEAD --force
|
2. 回退到上一次commit的状态
3. 回退到任意版本
git reset --hard <commitid>
|
4. 放弃提交,不推送
仅仅是撤回commit操作,写的代码仍然保留
HEAD^的意思是上一个版本,也可以写成HEAD~1
撤回2次提交,可以使用HEAD~2
不删除工作空间改动代码,撤销commit,并且撤销git add
这个为默认参数,git reset --mixed HEAD^
和 git reset HEAD^
效果是一样的。
不删除工作空间改动代码,撤销commit,不撤销git add
删除工作空间改动代码,撤销commit,撤销git add
完成这个操作后,就恢复到了上一次的commit状态。
5. 将分支A的提交,推送到分支B
checkout B git cherry-pick commitId
|
[如果有冲突,解决冲突之后
git add git cherry-pick --continue
|
]
6. 合并分支时忽略指定文件
.gitattributes中写入
"filename merge=ours": config.xml merge=ours
|
在根目录下运行命令行
git config merge.ours.driver true
|
更新本地分支与远程分支保持一致
git remote update origin --prune
|
7. 合并部分文件
合并分支B中srv目录下的所有文件和view目录下的index.html文件到A分支
git checkout A git checkout B srv/** view/index.html
|
srv下有多层目录,故不能用srv/*