我刚刚在git中将分支合并到master时遇到问题。首先,我通过运行git ls-remote
来获得分支名称。我们称该分支为“分支名称”。然后我跑git merge branch-name
命令,并得到以下结果:如何解决git的“不是我们可以合并的东西”错误
fatal: branch-name - not something we can merge
如何解决这个问题?
我刚刚在git中将分支合并到master时遇到问题。首先,我通过运行git ls-remote
来获得分支名称。我们称该分支为“分支名称”。然后我跑git merge branch-name
命令,并得到以下结果:如何解决git的“不是我们可以合并的东西”错误
fatal: branch-name - not something we can merge
如何解决这个问题?
如How does "not something we can merge" arise?所示,由于您试图拉取不存在的分支,因此分支名称中的拼写错误可能导致此错误。
如果这不是问题(与我的情况一样),那么很可能您没有要合并的分支的本地副本。 Git需要两个分支的本地知识才能合并这些分支。您可以通过检出要合并的分支并返回到要合并到的分支来解决此问题。
git checkout branch-name
git checkout master
git merge branch-name
这应该工作,但是如果你收到一个错误说
error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.
你需要获取远程(可能,但不一定是“原产地”)检出的分支前:
git fetch remote-name
我得到了这个错误,当我做了git merge BRANCH_NAME "some commit message"
- 我忘了为提交消息添加-m标志,所以它认为分支名称包括评论。
如果包含引用的字符串是由其他Git命令(或任何其他shell命令)生成的,请确保它最后不包含回车。在将字符串传递给“git merge”之前,您必须将其去掉。
请注意,这是很明显,当出现这种情况,是因为在两行的错误消息:
merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
- not something we can merge
请在评价答案时提供评论。也许这不是原始海报的问题,但它可能是错误信息的原因(我自己有问题)。 – ocroquette
我有这个问题为好。该分支看起来像'用户名/主'这似乎混淆git,因为它看起来像我定义的远程地址。对我来说使用这个
git merge origin/username/master
工作得很好。
这对我有用。我把远程名称与分支名称混淆了。 – Steve
我不得不在远程分支的名称前加'origin /'。 – AsGoodAsItGets
对于后人:就像AxeEffect说的...如果你没有错别字检查你的本地分支名称中是否有荒谬的字符,如逗号或撇号。刚才那件事发生在我身上。
或下划线。 +1 –
当从远程上游拉动,git fetch --all
为我做的伎俩:
git remote add upstream [url to the original repo]
git checkout [branch to be updated]
git fetch --all
git merge upstream/[branch to be updated]
在其他情况下,我找到了“不是我们可以合并”的错误也会发生如果远程(原产地,上游)分支不存在。这可能看起来很明显,但是你可能会发现自己在只有master
的回购协议上执行git merge origin/develop
。
我真的不知道为什么这个答案没有获得与上面一样多的选票。 'git fetch -all'是在合并远程分支之前通常没有运行的命令,并且解决了我的问题。 –
因为抓取不会自动拖动,所以您必须手动执行此操作。所以一对 - 所有和拉 - 所有将做的伎俩。 – danielpopa
谢谢! 'git remote add upstream'是我失踪的重要事情,为我解决了这个问题。我认为一个常见的错误是假设一个分支自动知道它从哪里分出来。 – Brent
我建议检查您是否能够切换到您尝试合并的分支。
即使我想合并的分支位于本地存储库中,但没有拼写错误,我得到了此错误。
我忽略了我的本地更改,以便我可以切换到分支(存储或提交也可以是首选)。在此之后,我切换回初始分支,合并成功。
我们得到了这个错误,因为我们在分支名称中有一个逗号(,)。我们删除了本地分支,然后用一个没有逗号的新名称重新检查它。我们能够成功地合并它。
下划线也似乎有问题。+1 –
我经常在分支名称中使用下划线@AndersLindén – nzaleski
我试过 git merge“Commit-message”,而不是 git merge -m“Commit-message”。
对我来说,问题发生时,我尝试这样做:
git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop
所以,其实我应该写master
代替develop
,因为主人子树,不是我的实际分支的分支名。
添加新的远程设备后,发生了这种情况 - 在合并远程分支之前,我需要首先执行git fetch。 – Jason
从远程获取并检出分支。 git fetch && git checkout分支名称 –
发生在我身上的时候,当我被误入错误的项目(即它是一个不同的回购,甚至没有我想合并的分支) – JoelFan