gpt4 book ai didi

git - "fatal: ref HEAD is not a symbolic ref"在交互式 git rebase 期间

转载 作者:太空狗 更新时间:2023-10-29 13:03:38 24 4
gpt4 key购买 nike

有 3 次提交 - 一次正确,然后两次愚蠢的清理,打字错误等。所以我想压扁它们。开火:

git rebase -i HEAD~3

听起来很简单,而且它应该可以工作 - 我在遇到问题后在一个全新的存储库中尝试过它,它按预期工作。编辑器显示 3 个提交,选择顶部,压扁其他两个,保存并退出,完成。如果我以详细模式运行,我会看到更多详细信息——git 通过检查我“选择”的第一个提交进入分离的 HEAD 状态,然后执行“Rebasing 2/3”和“Rebasing 3/3”,显然创建了一些临时提交一路走来——然后是一条成功消息;编辑器在某个时候再次 pop ,让我更改提交消息。一切都很好。

但是相同的命令在工作 repo 中消失了! 3 在编辑器中提交,pick-squash-squash.. 但是这次,我没有看到“Rebaseing 2/3”,而是“HEAD is now at my-SHA-1”之后的第一行,它遇到了一个致命的!

HEAD is now at 48a6c3d... <commit message>
fatal: ref HEAD is not a symbolic ref

但是为什么 git 期望 HEAD 是一个符号引用? Rebase 进程确实分离了 HEAD - 与我在探索性示例中看到的相同 - 那么为什么第二个示例中的致命问题,而不是第一个示例中的致命问题? cat .git/HEAD 给我“选择”的提交的 SHA1...

我花了几个小时阅读和研究,但这里有些地方不对劲,我找不到它是什么!我怀疑 可能 一些钩子(Hook)是负责任的(对它们知之甚少,并且知道有问题的 repo 确实有一些)。感谢您考虑回答此问题!

最佳答案

您的“工作”存储库可能以某种方式损坏了。参见 I can't git rebase --interactive anymore了解详情。

我会尝试在你的工作仓库中运行 git status 来弄清楚发生了什么。然后例如git rebase --abortgit merge --abort 或类似的东西可能是必需的。

我也会运行 git fsck

在您的存储库和工作目录准备就绪后,交互式 rebase 应该可以正常工作。另请注意,您可能需要 git rebase --root --preserve-merges ... 以防您想触及存储库中的第一个提交。

关于git - "fatal: ref HEAD is not a symbolic ref"在交互式 git rebase 期间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com