git revert 和 git reset 的区别 您所在的位置:网站首页 如果忘记手机密码该怎么办打开呢华为 git revert 和 git reset 的区别

git revert 和 git reset 的区别

2023-11-19 19:16| 来源: 网络整理| 查看: 265

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。这相当于增加了一次新的提交并且版本库中有记录。

reset

git 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 实验室设备网 版权所有