Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git重基过程被分离的磁头卡住_Git_Rebase - Fatal编程技术网

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,否。