git revert 和 git reset 的区别 | 您所在的位置:网站首页 › 如果忘记手机密码该怎么办打开呢华为 › git revert 和 git reset 的区别 |
revert
git revert 撤销某次操作,此次操作之前和之后的 commit 和 history 都会保留,并且把这次撤销作为一次最新的提交。git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。 没有push当代码已经 commit 但是还没有 push 的时候。可以使用下面的命令, git revert HEAD #撤销倒数第一次提交 git revert HEAD^ #撤销倒数第二次提交 git-revert HEAD~2 #撤销倒数第三次提交 git revert commit #(比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。撤销之后,会造成代码冲突,需要手动解决冲突然后提交代码。 假如本地有2条 commits没有 push。执行git revert HEAD~1会把Working Copy回退到服务器上的前一个版本。 已经push当代码已经 commit 并且 push。使用下面的命令, git revert HEAD~1 #代码回退到前一个版本然后需要手动合并冲突并进行修改,再 commit 和 push。这相当于增加了一次新的提交并且版本库中有记录。 resetgit reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区。除了默认的 mixed 模式,还有 soft 和 hard 模式。 模式HEAD的位置索引工作树soft修改不修改不修改mixed修改修改不修改hard修改修改修改主要使用的场合: 复原修改过的索引的状态 mixed彻底取消最近的提交 hard只取消提交 soft如果我们的有两次 commit 但是没有 push 代码。 git reset HEAD~1 #撤销前一次 commit,所有代码回到 Working Copy假如我们有几次代码修改,并且都已经 push 到了版本库中。 git reset --hard HEAD~2 #本地的Wroking Copy回退到2个版本之前。现在操作你需要修改的文件,然后重新 commmit。在 push 之前我们需要先 pull 代码下来。这会造成两个版本的冲突。代码会类似 Yeah Ok Ok |
CopyRight 2018-2019 实验室设备网 版权所有 |