吉特 恢复早于HEAD的提交失败

李洛根

我正在尝试学习git revert命令。我正在尝试还原早于HEAD的提交。这是不允许的吗?

$ git touch sonic
$ echo sonic >> sonic
$ git add .
$ git commit -m "sonic"
$ echo the >> sonic
$ git add .
$ git commit -m "the"
$ echo hedgehog >> sonic
$ git add .
$ git commit -m "hedgehog"
$ git log --oneline
d65e56d (HEAD -> master) hedgehog
e37fefc the
c745775 sonic

然后

$ git revert HEAD^
Auto-merging sonic
CONFLICT (content): Merge conflict in sonic
error: could not revert e37fefc... the
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

我可以做git revert HEAD,但可以还原d65e56d,但不能还原git revert HEAD^根本不允许这样做吗?git revert HEAD^^也无法正常工作。

星期二

那不是失败这也不是成功的。这是一个冲突,告诉您Git无法通过反向应用解决问题。

发生冲突是因为您触摸了相邻的行。您的第一个版本第二个版本的区别是the在文件末尾添加单词sonic”。撤消,Git的需要删除的字the该文件的末尾,字后sonic-但该文件并没有结束。现在继续包含单词hedgehog

实际上,Git不知道要删除最后一行(hedgehog)还是包含单词的行the1您可能认为这很明显,但是Git只是不知道如何。因此,它会因合并冲突而终止,并索引暂存区域中为您提供文件的三个版本,再在工作树中提供带有冲突标记第四个版本。现在,您的工作就是生成冲突文件的正确版本。

有很多方法可以做到这一点。我倾向于使用的一个方法是在编辑器中打开工作树文件,查找<<<<<<<行,然后仔细查看行以找出正确的方法。(我还设置merge.conflictStylediff3在冲突区域中有一个额外的部分,向我展示了文件基本版本中的内容以及两个冲突版本中的内容。在这种情况下,它实际上并没有帮助,虽然。)

无论将文件的工作树副本编辑为“正确答案”(无论如何),我都将其写出并退出编辑器,然后git add在有冲突的文件上运行现在,无论以前发生什么冲突,都可以使用我投入的内容解决冲突。

如果这是最后一次冲突(在这种情况下将是这种情况),git revert --continue将恢复还原并继续执行您要求还原的其他任何提交(如果有)。由于没有更多的事情要做,因此可以完成还原,您将全部完成。


1从技术上讲,Git试图合并两个更改,而不仅仅是删除一个更改。两个中的一个说删除the,另一个说添加hedgehog两者都放在文件的末尾,Git无法找出正确的答案。


恢复失败的HEAD^^情况类似,但是这次Git要删除the的行与Git看到添加了的行邻接sonic如果变化的线之间有足够的间隙,问题就消失了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

吉特 如何检查HEAD之后的修订版本?

来自分类Dev

吉特:南瓜是做什么的?以及为什么选择较早的提交?

来自分类Dev

吉特 如何使用合并不必要的提交来更新功能分支?

来自分类Dev

在提交/将其提交到TFS之前,是否可以查看您在Visual Studio中所做的更改?(吉特·迪夫的桂)

来自分类Dev

吉特,丢了我的零钱

来自分类Dev

吉特 “偷看”别人推动的变化?

来自分类Dev

如何连接吉拉和杰里特

来自分类Dev

吉特:如何“重新登台”上演的同一行?

来自分类Dev

吉特 如何重新掌握大师?(SVN更新模拟)

来自分类Dev

吉特 如何添加不是返回错误的所有文件?

来自分类Dev

吉特:什么是“工作树”?与“工作目录”相同吗?

来自分类Dev

吉特:如何在上次藏匿之前获得藏匿?

来自分类Dev

主分支4领先。无法推送。吉特

来自分类Dev

吉特 如何重新掌握大师?(SVN更新模拟)

来自分类Dev

吉特 如何添加不是返回错误的所有文件?

来自分类Dev

吉拉恢复用户和密码

来自分类Dev

吉拉恢复用户和密码

来自分类Dev

吉特(Git):您如何分叉以与原始回购建立联系?

来自分类Dev

吉特·胡克斯(Git Hooks)。如何从用户输入中读取变量?

来自分类Dev

吉特 撤消工作目录中的暂存更改,使暂存区域保持不变

来自分类Dev

吉特 如何在版本控制下添加文件夹和文件

来自分类Dev

吉特 在本地主服务器上重新建立本地分支。如何忽略单个文件的更改?

来自分类Dev

将GIT HEAD恢复为较早的提交

来自分类Dev

使用react hooks提交失败后恢复表单提交状态

来自分类Dev

莫吉巴烤

来自分类Dev

吉拉python customfield

来自分类Dev

吉柯的类别

来自分类Dev

吉森规则优先

来自分类Dev

吉拉-Python错误

Related 相关文章

  1. 1

    吉特 如何检查HEAD之后的修订版本?

  2. 2

    吉特:南瓜是做什么的?以及为什么选择较早的提交?

  3. 3

    吉特 如何使用合并不必要的提交来更新功能分支?

  4. 4

    在提交/将其提交到TFS之前,是否可以查看您在Visual Studio中所做的更改?(吉特·迪夫的桂)

  5. 5

    吉特,丢了我的零钱

  6. 6

    吉特 “偷看”别人推动的变化?

  7. 7

    如何连接吉拉和杰里特

  8. 8

    吉特:如何“重新登台”上演的同一行?

  9. 9

    吉特 如何重新掌握大师?(SVN更新模拟)

  10. 10

    吉特 如何添加不是返回错误的所有文件?

  11. 11

    吉特:什么是“工作树”?与“工作目录”相同吗?

  12. 12

    吉特:如何在上次藏匿之前获得藏匿?

  13. 13

    主分支4领先。无法推送。吉特

  14. 14

    吉特 如何重新掌握大师?(SVN更新模拟)

  15. 15

    吉特 如何添加不是返回错误的所有文件?

  16. 16

    吉拉恢复用户和密码

  17. 17

    吉拉恢复用户和密码

  18. 18

    吉特(Git):您如何分叉以与原始回购建立联系?

  19. 19

    吉特·胡克斯(Git Hooks)。如何从用户输入中读取变量?

  20. 20

    吉特 撤消工作目录中的暂存更改,使暂存区域保持不变

  21. 21

    吉特 如何在版本控制下添加文件夹和文件

  22. 22

    吉特 在本地主服务器上重新建立本地分支。如何忽略单个文件的更改?

  23. 23

    将GIT HEAD恢复为较早的提交

  24. 24

    使用react hooks提交失败后恢复表单提交状态

  25. 25

    莫吉巴烤

  26. 26

    吉拉python customfield

  27. 27

    吉柯的类别

  28. 28

    吉森规则优先

  29. 29

    吉拉-Python错误

热门标签

归档