如何在git中删除之前的提交而不删除之前的提交?

约旦

我试图从先前的提交(而不是HEAD)分支,但是当我提交那些更改时,不是将更改保留在分支中,而是抹去了我在HEAD上的提交。我可以看到这有什么用,但是我认为VC的意义是永久保留所有提交,以便您可以随时返回到先前的状态。

我如何编辑先前的提交并提交,而又不删除其在主控机上的提交呢?

谢谢!

编辑:

这是使我相信我的其他更改已被删除的图像

这是使我相信我的其他更改已被删除的图像

这是我认为已删除的隐藏分支

这是我认为已删除的隐藏分支。为什么gitk不显示其他分支(HEAD,master)

马丁·埃利斯(Martin Ellis)

提交可能不会丢失。首先进行备份。检查您有哪些分支,以及其中有什么。如果您确实在任何分支中都找不到提交,那么您可能有兴趣了解reflog

如果您没有安装存储库浏览器(我喜欢tig),则可以使用以下命令检查存储库:git log --graph --all --oneline --decorate

我如何编辑先前的提交并提交,而又不删除其在主控机上的提交呢?

如果要编辑的提交是先前的提交:

  • 进行所需的更改。
  • 暂存更改,git add -u如果不添加新文件,可以使用
  • 如果您不想编辑提交消息git commit --amend修改上一个提交,然后执行此-C HEAD操作。

如果要编辑较早的提交,则需要使用rebase。可以交互方式完成:

  • 从要编辑的任何分支开始,通常在工作副本中没有任何更改。
  • 进行早期提交中所需的更改。
  • 暂存并提交这些更改-不要在这里写下明智的提交消息。
  • 运行git rebase -i,这将打开一个编辑器:
    • 向上移动最后一行(带有无意义的提交消息),直到它位于您要编辑的提交下方的行上。
    • pick在行的开头更改f(用于修正)。
    • 对该文件不做其他更改
    • 保存并退出
  • Git应该修改您先前的提交以包括所做的编辑,并将尝试将其他更改置于最前面。

这将尝试将您的编辑应用于较早的提交,并在较早的提交加上您的编辑基础上重新安排所有后续更改。如果以后的提交受您的编辑影响,则可能会发生合并冲突。Git将提供有关如何解决这些问题的说明。如果您不理解它们,则可以使用git rebase --abort返回到开始的位置,其中所做的编辑是最新的提交。

请注意,您不应编辑已推送到共享存储库的提交。这可能会造成很多混乱。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

git在提交之前删除新文件中的尾随空格

来自分类Dev

如何在Git中删除最近的提交?

来自分类Dev

如何在Git中删除最近的提交?

来自分类Dev

Git删除提交而不删除合并提交

来自分类Dev

如何在Git中的所有其他提交之前添加父提交?

来自分类Dev

在Git中删除提交

来自分类Dev

如何删除git push之前已经提交的不必要的文件

来自分类Dev

如何在git中删除无用的本地提交?

来自分类Dev

如何在 git 中删除作者或提交者

来自分类Dev

如何从提交中排除而不删除?

来自分类Dev

如何在存储中提交之前将格式应用于v模型值并删除格式

来自分类Dev

在克隆之前删除提交(忘记--depth 1)

来自分类Dev

在表单提交jQuery之前删除空值

来自分类Dev

在克隆之前删除提交(忘记--depth 1)

来自分类Dev

GitHub 删除了我之前的提交

来自分类Dev

git:如何在使用预提交钩子提交文件之前获取文件的提交消息?

来自分类Dev

如何从git中删除分离的提交?

来自分类Dev

如何删除git中的初始提交?

来自分类Dev

如何从标签中删除Git提交?

来自分类Dev

如何修改或删除 Git 中的旧提交?

来自分类Dev

如何在Git中还原为先前的提交并删除以后的提交

来自分类Dev

Git:如何删除提交的父提交

来自分类Dev

如何删除中间提交而不删除它引起的更改?

来自分类Dev

如何删除中间提交而不删除它引起的更改?

来自分类Dev

如果文件已经添加到git中,IntelliJ如何在提交之前更改文件

来自分类Dev

如何在git中的主分支上首次提交之前移动后来创建的分支?

来自分类Dev

删除git中的空提交

来自分类Dev

如何在推送之前更改或编辑提交中的消息

来自分类Dev

如何在特定提交之前git checkout一个提交

Related 相关文章

  1. 1

    git在提交之前删除新文件中的尾随空格

  2. 2

    如何在Git中删除最近的提交?

  3. 3

    如何在Git中删除最近的提交?

  4. 4

    Git删除提交而不删除合并提交

  5. 5

    如何在Git中的所有其他提交之前添加父提交?

  6. 6

    在Git中删除提交

  7. 7

    如何删除git push之前已经提交的不必要的文件

  8. 8

    如何在git中删除无用的本地提交?

  9. 9

    如何在 git 中删除作者或提交者

  10. 10

    如何从提交中排除而不删除?

  11. 11

    如何在存储中提交之前将格式应用于v模型值并删除格式

  12. 12

    在克隆之前删除提交(忘记--depth 1)

  13. 13

    在表单提交jQuery之前删除空值

  14. 14

    在克隆之前删除提交(忘记--depth 1)

  15. 15

    GitHub 删除了我之前的提交

  16. 16

    git:如何在使用预提交钩子提交文件之前获取文件的提交消息?

  17. 17

    如何从git中删除分离的提交?

  18. 18

    如何删除git中的初始提交?

  19. 19

    如何从标签中删除Git提交?

  20. 20

    如何修改或删除 Git 中的旧提交?

  21. 21

    如何在Git中还原为先前的提交并删除以后的提交

  22. 22

    Git:如何删除提交的父提交

  23. 23

    如何删除中间提交而不删除它引起的更改?

  24. 24

    如何删除中间提交而不删除它引起的更改?

  25. 25

    如果文件已经添加到git中,IntelliJ如何在提交之前更改文件

  26. 26

    如何在git中的主分支上首次提交之前移动后来创建的分支?

  27. 27

    删除git中的空提交

  28. 28

    如何在推送之前更改或编辑提交中的消息

  29. 29

    如何在特定提交之前git checkout一个提交

热门标签

归档