赞
踩
在项目中会出现当前版本的代码仓出现问题,或者其它的一些情况,需要将当前的代码回滚到之前的某个指定版本上去。
如下图有4笔 commit,现在需要从当前的fourth commit---->4回滚到second commit----->02版本
git log
查看当前提交的历史内容,如上图所示的。git reset --hard 7ca0f0f296
git push --force
如代码仓中有如下的提交history,HEAD指向C。现在需要撤销B的操作,但是保留C的操作。
git revert 6205ee287085
【注意】
git revert相当于撤销某一笔Commit,它只能对一个文件的最后一次Commit进行revert操作。如果对同一个文件,如file.txt分别进行多次编辑,并Commit,产生如下的History。现在想 revert b的commit,则将会产生冲突。主要原因是c的内容和b的内容在同一个文件上。
总结:git reset
和 git revert
区别:
git reset
相当于直接删除某一指定Commit_id之后的所有提交,来实现回滚到指定版本处。其后的所有Commit都被丢弃。
git revert
相当于撤销某一处Commit的操作,一般只用来撤销上一步的Commit。若撤销的Commit之间有多个其它的Commit,则很有可能出现Conflict。因为连续多个Commit可能会对同一个文件进行编辑。
git reset
则相当于回退到某一指定的Commit版本,将其后的所有提交都清除掉。git revert
常用于团队开发中,有多人提交代码,需要撤销自己的某一笔 Commit操作,而不影响别人的Commit内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。