我正在尝试通过运行git rebase -i HEAD~3
(使用“nano”编辑器)然后将该提交的默认pick
选项更改为某个项目来重写倒数第二次提交以修复拼写错误r
或reword
(在初始的rebase文件窗口中),并且不修改任何其他内容。我在master
分支上做这件事,如果有用的话。
一旦我保存文件,Git,而不是像往常一样向我显示下一个rebase窗口为该提交选择一个新名称,它会将自己放入并通知我一个具有该提交的独立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
后的输出:
没有进行任何重组?
答案 0 :(得分:3)
当您将edit
放入交互式rebase的待办事项文件中时,通常会显示分离的HEAD消息。您必须错误地将edit
放在那里而不是reword
。或者由于输出中发现错误,Git可能已进入此模式(也会在冲突中输入):
此存储库是为Git LFS配置的,但在您的路径中找不到“git-lfs”。如果您不再希望使用Git LFS,请删除.git / hooks / post-checkout以删除此挂钩。无法分离HEAD
您应该在继续之前解决此错误。 Git告诉你该怎么做。
edit
模式允许修改提交消息,如reword
模式,还允许修改文件内容。因此,Git让您处于可以提交更改然后使用git rebase --continue
继续变基的状态。
reword
模式edit
)
如果您只想编辑提交消息并继续重新定位,请运行
git commit --amend
打开编辑器以允许您编辑提交消息。完成后,运行
git rebase --continue
一旦我保存文件,Git,而不是像往常一样向我显示下一个rebase窗口为该提交选择一个新名称,它会将自己放入并通知我一个具有该提交的独立HEAD状态,这也是从那时起
git status
命令显示,直到我输入git checkout master
。
这不是留下未完成的rebase的正确方法,你应该使用
git rebase --abort
代替。
答案 1 :(得分:0)
我在git rebase -i
上遇到了同样的问题,具有相同的确切输出,而且绝对没有从git中得到原因的提示。
通过反复试验,我最终发现我的检出后挂钩( repodir /。git / hooks / post-checkout)的退出状态为非零。一旦在其末尾添加了exit 0
,重新设置成功就成功了,而没有使回购处于分离的HEAD状态。