[原创] git revert和reset的区别

之前对git revert和reset的区别不太清楚,找到了这篇文章,同时通过实验,算是初步搞懂了他们的区别。

这里 写道
http://blog.csdn.net/xiao628945/article/details/8182276

 在这里用自己的话说明一下他们的区别。

git revert 意思是仅仅撤销本次提交,如果是新建文件,那么该文件被删除,且不存在暂存区,之前或之后的commit不受影响。

git reset --soft/hard commitID 撤销的是该次commit之后的所有提交,--hard表示工作区的代码完全替换成commitID这次的代码,且被撤销的代码不存在与暂存区;--soft表示commitID之后的代码会移入暂存区。

[2013/06/26]

更新昨天的理解,如果commit已经push到远端,那么在这种情况下,执行git revert commit ID之后push到远端就会撤销commit ID对应的远端提交;而执行git reset commit ID只会降低本地代码的版本,push到远端会提示“代码版本低于远端版本,需要执行git pull...”之类的。所以如果想要撤销远端某此提交,需要执行git revert commit ID 而不是git reset。

[2013/09/20]

git revert如果是自己用的话,完全没有必要使用,这个命令只是git rm **+git cmt -m "balabalabla"的“简写”而已。

猜你喜欢

转载自justt0.iteye.com/blog/1894412