Git rebase进程陷入困境

问题描述 投票:3回答:1

我正在尝试通过运行git rebase -i HEAD~3(使用“nano”编辑器)然后将该提交的默认pick选项更改为rreword(在初始rebase文件窗口上)来改写倒数第二次提交以修复输入错误的项目,而且,不修改任何其他内容。如果有用,我在master分支上这样做。

一旦我保存文件,Git,而不是像往常一样向我显示下一个rebase窗口为该提交选择一个新名称,它将自己放入并通知我一个具有该提交的分离的HEAD状态,这也显示在git status上从那时开始的命令,直到我输入git checkout master

无论我尝试多少次,都会发生同样的事情。

附加说明:我之前通过运行单个命令:git config --global core.editor nano将已使用的编辑器更改为“nano”

编辑:根据要求,这是我保存TODO列表时Git给我的消息:

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以删除此挂钩。无法分离头部

此时运行git rebase --continue后的输出:

没有任何进展?

git rebase
1个回答
3
投票

edit放入交互式rebase的待办事项文件时,通常会显示分离的HEAD消息。你必须错误地把edit放在那里而不是reword。或者由于输出中发现错误,Git可能已进入此模式(也会在冲突中输入):

此存储库是为Git LFS配置的,但在您的路径中找不到“git-lfs”。如果您不再希望使用Git LFS,请删除.git / hooks / post-checkout以删除此挂钩。无法分离头部

您应该在继续之前解决此错误。 Git告诉你该怎么做。

edit模式允许修改提交消息,如reword模式,还允许修改文件内容。因此,Git让您处于可以提交更改然后使用git rebase --continue继续变基的状态。

Editing the commit message (like reword) in the edit mode

如果您只想编辑提交消息并继续重新定位,请运行

git commit --amend

这将打开编辑器以允许您编辑提交消息。完成后,运行

git rebase --continue

Leaving unfinished rebase

一旦我保存文件,Git,而不是像往常一样向我显示下一个rebase窗口为该提交选择一个新名称,它将自己放入并通知我一个具有该提交的分离的HEAD状态,这也显示在git status上从那时开始的命令,直到我输入git checkout master

这不是留下未完成的rebase的正确方法,你应该使用

git rebase --abort

代替。

© www.soinside.com 2019 - 2024. All rights reserved.