Git重基过程被分离的磁头卡住
我正在某个项目上尝试通过运行Git重基过程被分离的磁头卡住,git,rebase,Git,Rebase,我正在某个项目上尝试通过运行git rebase-I HEAD~3(使用“nano”编辑器),然后在不修改任何其他内容的情况下,将提交的默认pick选项更改为r或reword,以修复打字错误。如果有用的话,我正在master分支上执行此操作 当我保存文件Git时,它不会像往常一样显示下一个rebase窗口来为提交选择一个新名称,而是会自动显示并通知我该提交的分离头状态,从那时起,该状态也会显示在Git status命令上,直到我键入Git checkout master 无论我尝试了多少次,同样
git rebase-I HEAD~3
(使用“nano”编辑器),然后在不修改任何其他内容的情况下,将提交的默认pick
选项更改为r
或reword
,以修复打字错误。如果有用的话,我正在master
分支上执行此操作
当我保存文件Git时,它不会像往常一样显示下一个rebase窗口来为提交选择一个新名称,而是会自动显示并通知我该提交的分离头状态,从那时起,该状态也会显示在Git status
命令上,直到我键入Git checkout master
无论我尝试了多少次,同样的事情都会发生
附加说明:我之前通过运行单个命令将使用的编辑器更改为“nano:git config--global core.editor nano
编辑:根据请求,这是Git在我保存TODO列表时给我的消息:
阿德里安$git rebase-我头~1
注意:正在签出“da91bbcedc78cb2ebcaa9dc51f38c8d0a550195d”
你处于“超脱的头部”状态。你可以四处看看,做实验
更改并提交它们,您可以放弃在此过程中所做的任何提交
通过执行另一个签出,在不影响任何分支的情况下进行状态设置
如果要创建新分支以保留创建的提交,可以
再次将-b与checkout命令一起使用(现在或以后)。例如:
git签出-b
海德现在在da91bbc。。。测试消息
此存储库是为Git LFS配置的,但在您的路径上找不到“Git LFS”。如果您不再希望使用Git LFS,请通过删除.Git/hooks/post checkout来删除此钩子。
无法分离头部
运行git-rebase之后的输出--此时继续执行:
没有进行再基地
当您将edit
放入交互式重基的待办文件中时,分离的标题消息将正常显示。您一定是错误地将edit
放在那里,而不是reword
。或者,由于在输出中发现错误,Git可能已进入此模式(也在冲突中输入):
此存储库是为Git LFS配置的,但在您的路径上找不到“Git LFS”。如果您不再希望使用Git LFS,请通过删除.Git/hooks/post checkout来删除此钩子。无法分离头部
您应该先解决此错误,然后再继续。Git告诉你该怎么做
编辑
模式允许修改提交消息,如重写
模式,但也允许修改文件内容。因此,Git让您处于一种状态,您可以提交更改,然后使用Git-rebase--continue
继续重定基址
在编辑
模式下编辑提交消息(如重写
)
如果只想编辑提交消息并继续重定基址,请运行
git commit --amend
这将打开编辑器以允许您编辑提交消息。完成后,跑步
git rebase --continue
留下未完成的重基
当我保存文件Git时,它不会像往常一样显示下一个rebase窗口来为提交选择一个新名称,而是会自动显示并通知我该提交的分离头状态,从那时起,该状态也会显示在Git status
命令上,直到我键入Git checkout master
这不是留下未完成的重基的正确方法,您应该使用
git rebase --abort
相反。我在git rebase-I上遇到了同样的问题,有着相同的精确输出,并且完全没有从git中说明原因
通过反复试验,我最终发现我的签出后钩子(repodir/.git/hooks/post-checkout)以非零状态退出。一旦我在其末尾添加了一个退出0,再基础成功了,而没有使回购处于分离的头部状态。你一定是做错了什么,因为再基础不应该使你处于分离的头部状态。你确定你在重定基址时包括了每一步吗?这在我使用Git的6年中从未发生过。我敢肯定。我没有提到的唯一可能的错误,是因为我没有考虑到,在这个过程中,我在最初的窗口中编写了一个新的提交文本(在这里,您首先需要切换到代码错误> R <代码>或代码> >代码>代码>选项,这是由错误的直觉冲动引起的。根据我的经验,启动rebase将应用提交,对于每个提交,bash将弹出一个包含原始提交的emacs。我可以选择是否编辑该消息。在任何情况下,一旦我保存并退出,重基将继续。退出之前是否保存了提交消息?例如,编辑器可能不会返回状态0。或者您可能有一个范围内的合并提交。您是否尝试改用e
或r
,执行git提交--amend
,更改标题,然后git-rebase--continue
?按照git告诉我的做(删除文件.git/hooks/post-checkout),然后执行它说的另一个操作(删除另一个文件.git/hooks/pre-push)解决了这个问题。我只是看不到这些git-LFS(大文件支持)之间的关系rebase失败的消息。作为回答您的旁注,不,我没有错误地输入e
选项,并且我总是继续执行git-rebase--abort
,但这个问题只是使rebase消失,因此这些相关命令不起作用。谢谢!您在.gittributes中显式使用了lfs吗?我想知道是否有此问题即使您没有使用itI,也会触发错误。没有在.gittributes中显式使用lfs,否。