我刚刚遇到了一个问题,合并一个分支到主git。首先,我通过运行git ls-remote来获得分支名称。我们称这个分支为“branch-name”。然后我运行git merge branch-name命令,得到如下结果:

fatal: branch-name - not something we can merge

如何解决此错误?


当前回答

这个错误表明你想要合并更改的分支(即在你的情况下branch-name)不存在于你的本地,所以你应该签出分支并获取本地更改。 签出到你的主分支并获取,然后按照以下步骤执行:

git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name

其他回答

正如在“我们不能合并的东西”是如何产生的?,此错误可能由分支名称中的拼写错误引起,因为您正在尝试拉取一个不存在的分支。

如果这不是问题所在(就像我的情况一样),那么很可能您没有想要合并的分支的本地副本。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.

在签出分支之前,你需要获取远程(可能,但不一定是“origin”):

git fetch remote-name

这个答案与上面的问题无关,但我遇到过类似的问题,也许这对别人有用。我试图合并我的特征分支,如下所示:

$ git merge fix-load

为此得到了以下错误消息:

合并:固定加载-不是我们可以合并

我研究了所有的解决方案,但并不是所有的都有效。

最后,我意识到问题的原因是我的分支名称的拼写错误(实际上,合并分支名称是fix-loads)。

我也有同样的问题。我用下面的命令修复了它:

git checkout main
git fetch
git checkout branch_name
git fetch
git checkout main
git fetch
git merge branch_name

为了避免错别字你可以做

git fetch --all -v

然后复制您的分支机构的名称并执行

git checkout <branch-name>
git checkout master
git merge <branch-name>

您正在尝试合并的分支目前可能无法被您的git识别 所以执行 git分支 并且看看你想要合并的分支是否存在,如果不存在则执行 git拉 现在如果你使用git分支,分支就会显示出来, 现在你执行git merge <BranchName>