美文网首页
Git reset | revert

Git reset | revert

作者: Maple_heather | 来源:发表于2016-12-29 15:37 被阅读0次

Reset


Reset 适用于还没有 Push 的回滚。

reset 指令:

¡ 将 HEAD 指针指向指定的提交;

¡¡ 根据参数[--soft | mixed | hard | keep ...]进行对 Index (Staging Area)和 Working Directory 的重置。

soft

不对 Index 和 Working Directory 进行重置。

mixed(默认)

只对 Index 进行重置。

hard

对 Index 和 Working Directory 进行重置。

图1
图2

Revert


前提:分支是干净的。

产生冲突:revert 的 commit 和其之后的 commit 有冲突。比如:revert 的 commit 和 其后的一些 commit 修改了同一文件。

revert


Reset 、Revert 差别


Reset 将 HEAD 后移。而 Revert 是用一次新的 commit 来中和掉之前的 commit ,这样保证了 HEAD 一路向前。


小结


1. reset 应该用在你的私有分支上。reset 将 HEAD 后移,当你将该分支合并到其它分支上时,HEAD 后的 commit 可能会出现在合并分支上。而 revert 则不会出现这种情况。

2.当你的代码已经 push 到远端,这时必须用 revert。如果你使用 reset 将本地代码会滚到你想要的版本,这时候你 push 到远端会出很多问题(本地版本落户远端版本,你必须先 pull ,但是这样又恢复到了你不想要的版本)。如果你使用 revert ,只是多了一次新的 commit ,这时候你在 push 到远端,很随意的就覆盖了远端的版本。


相关文章

网友评论

      本文标题:Git reset | revert

      本文链接:https://www.haomeiwen.com/subject/unxevttx.html