之前对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"的“简写”而已。