您的位置:首页 > 其它

git revert的使用

2017-01-24 16:32 218 查看
当项目需要回滚时,就需要用到git revert或git reset命令。

git revert和git reset的区别就是revert 是将之前的提交反转(新增就删除),然后作为一次新的提交;reset commit_id是回滚到该commit_id下,该commit_id之后的提交都会删除。

所以在生产环境一般建议用git revert,同时强烈建议使用git命令行操作git而不是git的相关工具,因为git命令行可以让你知道每个命令做了什么,下一步要做什么。

步入正题:(若回滚多个commit,做好先回滚最近的commit)

1、git revert -n commit_id ,若出现is a merge but no -m option was given

这是因为你revert的那个commit是一个merge commit,它有两个parent, Git不知道base是选哪个parent,就没法diff,所以就抱怨了,所以你要显示告诉Git用哪一个parent。

则 git revert -n commit_id -m 1 这样就选parent 1,那么parent 1又是哪一个呢?

一般来说,如果你在master上merge branch_xxx,那么parent 1就是master,parent 2就是branch_xxx.

2、git reset HEAD

3、git add.

4、git commit -m “xxx”

5、git push origin master

revert之后,修改好分支再merge到master发现之前merge的代码不能merge到master上了,这是因为master上已经有了之前的merge历史了

解决办法:revert之前revert的commit_id

具体参考(https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: