1.应用场景
在开发的过程中,当发现有需要撤回的commit的时候,这两个命令(git reset及 git revert)就起到了关键作用,那么问题来了,git reset与git revert之间有什么区别?我们怎么在不同的场景更好的应用他们呢?
2.两者的区别
先讲git reset, git reset可以将之前的多个commit回退到某次提交,等修改后需要git push -f 提交到远程,无形中,远程的多个commit合成了一个commit,那么这个操作有些骚呢?骚从何来?如果存在多个人开发的场景 ,或者前后端交叉提交,那么这个命令极有可能把别人的代码(前端或后台代码),反正不仅仅是你的代码全部合成到一个commit种,这样很危险,不利于其他开发者对自己commit进行review或定位,如果是自己的一个功能的多次提交,只是想变基下,然后这命令有操作十分6的话,笔者还是推荐你可以试试;reset最明显的就是让远程库的head指针回退了。
再看git revert,顾名思义revert,就是撤回的意思,git revert commitId, 只不过这个撤回后会再次提交一个新的commitId, 远程库的head指针是继续往前走的。