【发布时间】:2017-12-29 12:02:25
【问题描述】:
我正在尝试通过运行git rebase -i HEAD~3(使用“nano”编辑器)然后将该提交的默认pick 选项更改为r 或reword(在初始变基文件窗口上),并且不修改任何其他内容。我在master 分支上做,如果有用的话。
一旦我保存文件,Git,它不会像往常一样向我显示下一个变基窗口来为该提交选择一个新名称,而是将自身放置并通知我该提交的分离 HEAD 状态,这也是从那时起在git status 命令上显示,直到我输入git checkout master。
无论我尝试多少次,都会发生同样的事情。
附加说明:我之前通过运行单个命令将使用的编辑器更改为“nano”:git config --global core.editor nano
编辑:根据要求,这是 Git 在我保存 TODO 列表时给我的消息:
adrian$ git rebase -i HEAD~1
注意:查看“da91bbcedc78cb2ebcaa9dc51f38c8d0a550195d”。
您处于“分离 HEAD”状态。你可以环顾四周,做实验 更改并提交它们,您可以丢弃您在此所做的任何提交 在不影响任何分支的情况下执行另一次结帐。
如果你想创建一个新分支来保留你创建的提交,你可以 再次使用 -b 和 checkout 命令来执行此操作(现在或以后)。示例:
git checkout -b
HEAD 现在在 da91bbc... 测试消息
此存储库已针对 Git LFS 进行了配置,但在您的路径中未找到“git-lfs”。如果您不再希望使用 Git LFS,请通过删除 .git/hooks/post-checkout 来移除此挂钩。 无法分离 HEAD
此时运行git rebase --continue后的输出:
没有正在进行的变基?
【问题讨论】:
-
你一定是做错了什么,因为变基不应该让你进入分离的 HEAD 状态。你确定你包含了你在变基时采取的每一个步骤吗?这在我使用 Git 的 6 年中从未发生过。
-
我确定。我没有提到的唯一可能的错误是因为我没有考虑过,在这个过程的几次尝试中,我在初始窗口上写了一个新的提交文本(你首先必须切换到
r或 @987654331 @option) 由错误的直觉冲动引起。也许这会导致从那时起触发发行。 -
根据我的经验,启动 rebase 将应用提交,并且对于每次提交,bash 都会弹出一个带有原始提交的 emacs。我可以选择是否编辑该消息。无论如何,一旦我 save 并退出,rebase 就会继续。退出前是否保存了提交信息?
-
例如,您的编辑器可能不会返回状态 0。或者你可能有一个范围内的合并提交。
-
您是尝试使用
e还是r,执行git commit --amend,更改标题,然后git rebase --continue?