Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
我能';t git rebase--不再是交互式的了_Git_Git Rebase - Fatal编程技术网

我能';t git rebase--不再是交互式的了

我能';t git rebase--不再是交互式的了,git,git-rebase,Git,Git Rebase,我在尝试回购时遇到了一个严重的问题,那就是git-rebase-interactive。我得到了一个神秘的错误致命:ref HEAD不是一个符号ref,我的rebase停止工作。我必须git-rebase--abort才能回到良好状态 以下是我收到的输出: 过去有人告诉我,这是因为我处于“超脱头”模式,但如果我处于这种模式,我怎么会首先进入再基地呢?我肯定是从master开始,然后运行git-rebase--interactive并将git-rebase todo文本文件修改为我想要的。然后这个

我在尝试回购时遇到了一个严重的问题,那就是git-rebase-interactive。我得到了一个神秘的错误
致命:ref HEAD不是一个符号ref
,我的rebase停止工作。我必须
git-rebase--abort
才能回到良好状态

以下是我收到的输出:

过去有人告诉我,这是因为我处于“超脱头”模式,但如果我处于这种模式,我怎么会首先进入再基地呢?我肯定是从
master
开始,然后运行
git-rebase--interactive
并将git-rebase todo文本文件修改为我想要的。然后这个错误就发生了


我问过这里的每个人,还有一些人在freenode上。似乎没有人真正理解我的问题,也不知道解决办法是什么。谷歌搜索该错误并没有产生任何结果,有关StackOverflow的搜索也没有证明任何结果。我似乎无法理解这一点,从压扁我推给master的每一个提交,到现在将我所做的每一个小更改作为单独的提交,这真是太糟糕了。

在“git rebase”过程中,您正在重定的引用被签出。如果该ref是一个commit,那么您将得到一个分离的头;如果是分支引用,则该分支将被签出。如果在提交过程中发生致命错误,那么您的工作目录将处于禁用状态。例如,如果您在branch Foo上,并且尝试从Bar上重新设置基址,那么在发生致命事件后,您将在Bar上或在Bar之后的某个地方应用一些重新设置基址的提交。您可以通过简单地签出Foo来恢复

git rebase --abort 
或者,如果重新基础真的被楔入(见下文参考),如下所示:

之后,您可以安全地再次尝试重新基址,以尝试调试致命错误发生的原因。在这种情况下,当内存不足时,rebase失败,“git rebase--abort”不起作用。

git rebase--abort对我不起作用。尽管rebase输出已经提供了解决方案:

fatal: It seems that there is already a rebase-merge directory, and
I wonder if you are in the middle of another rebase.  If that is the
case, please try
        git rebase (--continue | --abort | --skip)
If that is not the case, please
        rm -fr ".git/rebase-merge"
and run me again.  I am stopping in case you still have something
valuable there.


即在运行了
rm-fr之后“.git/rebase merge
,一切恢复正常。

这里描述了一个成功的完全rebase-i:”。在您的情况下,请尝试
git checkout master
,比如
8bbfbba
?或者您没有在冲突后执行git重基--continue(继续)
?这可能是因为您仍在先前的重基中,该重基在重新处理过程中分离头部。在修复当前交互步骤的过程中,在一次大的重新设置基础时,这很容易发生,您可能会分心。我刚刚完成了一个重基,我有很多工作(许多小步骤)要做,但最后为每一步做了一个单独的
rebase-I
,这样我就不会迷路了。启动GitGUI和GitkVisualiser也会有所帮助。[确保您从您自己的本地分支之一开始]您可以通过查看
.git/HEAD
的内容确定您是否实际处于分离头部模式,如果它包含类似“ref:refs/heads/…”的文本,则您不处于分离头部模式。另一方面,如果它包含SHA-ID(例如,一个杂乱的字母和数字字符串),则您确实处于分离头部模式。使用
git checkout-f
无法解决我的问题。我一直在做
git-rebase--abort
,每次都是为了摆脱这个基础。以下是我在尝试
git签出-f
时得到的结果:这是由于我使用了
git跟踪器。很抱歉使用“git-rebase-abort”是首选方法;但它并不总是有效(参见参考资料)
fatal: It seems that there is already a rebase-merge directory, and
I wonder if you are in the middle of another rebase.  If that is the
case, please try
        git rebase (--continue | --abort | --skip)
If that is not the case, please
        rm -fr ".git/rebase-merge"
and run me again.  I am stopping in case you still have something
valuable there.