“不是我们可以合并的”是如何产生的?

35

这对我来说是新的。我是一个相当有经验的git用户,刚刚为从我的repo派生出来的一个repo添加了远程分支,获取了更新并尝试合并它们:

$ git merge HEAD f6ff240dbf47234249a68b34c8a98bb11237aa7
fatal: f6ff240dbf47234249a68b34c8a98bb11237aa7 - not something we can merge

关于这个错误信息,网络上几乎没有什么相关资料,这让我感到震惊。我能找到的最接近的资料是关于处于“分离头指针状态”的这个页面。但是git status显示我在主分支上。

您可以在github上查看我正在尝试使用的存储库 - 我的存储库我想要拉取的远程存储库。在撰写本文时,我的存储库的主分支位于6dc048862a93ffba6cd37883fd43e40651f248c1

通过查看提交历史记录,我可以看到分叉的位置,并尝试合并来自分叉后3个提交之前的一个提交。看起来并不难。

如果要复制,请按照以下步骤进行:

git clone https://github.com/aptivate/dye
cd dye
git remote add qris git://github.com/qris/ping-dye.git
git fetch qris
git checkout master
git merge f6ff240dbf47234249a68b34c8a98bb11237aa7

在我的情况下,该消息是通常的“致命错误:'f6ff240dbf47234249a68b34c8a98bb11237aa7'不指向提交”。 - bereal
不同的客户端版本?我也收到了“无法合并”的消息。我使用的是1.7.10版本。 - KingCrunch
我正在使用1.7.10.4,收到了上面的信息。@bereal的消息可能更有用。 - Hamish Downer
啊,这就解释了,我在1.7.9.5上。 - bereal
1
谢谢,我在使用Bitbucket的pull request时遇到了类似的问题,他们建议用户运行以下命令:git merge --no-ff -m 'Merged in hotfix (pull request #1)' remotes/username/project/hotfix 但是本地没有 remotes/username/project/hotfix,你需要将其编辑为 origin/hotfix - pulkitsinghal
3个回答

22

很简单: f6ff240dbf47234249a68b34c8a98bb11237aa7 不存在。

我刚才意识到你指的是3f6ff240dbf47234249a68b34c8a98bb11237aa7(注意开头缺少的3)。只需转到提交列表,然后键入Ctrl+f f6ff

如果那是您认识的人,应告诉他们始终master分支并将其自定义更改提交到那里(对于每个更改),而不是直接提交到master。然后,他就不需要从上游(您)进行变基和强制推送更改,您只需要合并特定的故事分支即可。


1
刚刚检查了一下,你是对的——我不知道怎么错过了提交 ID 前面的 3。唉。错误信息仍然不是最有帮助的。也许你的答案会帮助像我这样的未来白痴;) 谢谢。 - Hamish Downer
1
可能听起来有点蠢,但我之所以遇到这个错误是因为我试图合并的分支不存在。我之前已经删除了它,只是忘记了。 - Ian G
2
在我的情况下,它是一个分支名称,并且解决方案是在其前缀中加入 origin/,因为它是一个远程分支,在我的工作副本中没有本地存在。 - CodeManX

3

我遇到了同样的错误信息。在我的情况下,原因是我在分支名称中使用了 "(" 和 ")" 符号。


3
如果我使用错误的引号(HEX UTF-8字节E2 80 9CHEX UTF-8字节E2 80 9D),而不是简单的引号(HEX UTF-8字节22)来括起提交消息,我会遇到错误。请见下文。
Master@HP-ENVY-L MINGW64 ~/desktop/learning/git-practice/p_2 (master)
$ git merge feature-branch -m “Merge feature-branch into master”
merge: into - not something we can merge

Master@HP-ENVY-L MINGW64 ~/desktop/learning/git-practice/p_2 (master)
$ git merge feature-branch -m "Merge feature-branch into master"
Already up-to-date.

由于我是通过复制粘贴指令执行而不是手动输入,所以出现了这个问题。Git提供的错误信息并不是非常具体。

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