在SmartGit中重新设置基础分支:“git-am正在进行中”

70
我将尝试解释我的问题。我已经多次使用git bash的rebase选项。现在我有了SmartGit,但不知道为什么rebase不正确。 步骤1: 步骤2: 步骤3: 结果是HEAD分离。

6
假设您并非真正尝试在其他地方使用 git am,那么 git am --abort 会有任何不同吗? - Chris
而且:虽然在SmartGit中无法执行“git rebase”,但是否仍然可以从命令行执行? - mstrap
@mstrap 是的,可以通过命令行实现,但无法在 SmartGit 中实现。 - Ark
@Chris,我认为SmartGit不代表命令行,所以我不知道如何强制它使用git am命令。我喜欢它方便的用户界面,不想回到GIT bach命令行。 - Ark
1
@Ark,你是否也尝试过使用命令行中的--preserve-merges选项?如果只有SmartGit失败,那就很奇怪了,因为它显然在这里使用命令行Git。话虽如此,我建议遵循Chris的建议,使用命令行Git来执行git am --abort。然后rebase应该会成功。 - mstrap
4个回答

188

我遇到了同样的问题,在我的电脑上删除了本地分支,并每次从源重新创建它。但最终我找到了解决方法。我运行了以下命令:

git am --abort 解决了我的问题。


13
这个问题也出现在SourceTree中 - 并且你的修复方法在那里也适用。谢谢。 - Holger Bille
3
在SourceTree中出现类似的错误,在dos中使用了git am --continue命令,输出信息提供了帮助:“如果没有剩余要暂存的内容,很有可能是其他地方已经引入了相同的更改;您可能想跳过此补丁[...]改为运行"git am --skip"。”事实上,我的补丁所做的更改和合并的分支引入的更改相同(或者我在尝试修复时弄错了)。运行git am --skip,一切都正常了。 - Thierry_S
刚刚在Sourcetree中应用补丁。手动合并冲突后,我需要的是--continue - Pysis
我在Sourcetree中也遇到了这个问题,通过打开git cli并运行abort命令进行解决。 成功了! - GEMI

8

在收到此错误消息后,我所能做的唯一事情就是删除.git\rebase-apply文件夹及其所有内容以取消重定位。

rm .\.git\rebase-apply

1

在尝试执行git pull –rebase origin master时,我遇到了这个错误。

不幸的是,已接受的git am --abort并没有帮助,它报错如下:

错误:自上次“am”失败以来,您似乎已经移动了HEAD。

不将其倒回ORIG_HEAD

但好老的pull命令确实起作用了(之后再执行rebase也没问题):

git pull origin master

1
我在SourceTree遇到了这个问题,其中分支具有不同的.gitignore文件。 我通过在合并之前提交匹配的.gitignore来解决它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接