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

fatal: branch-name - not something we can merge

如何解决此错误?


当前回答

我的目标是将Branch2代码合并到Branch1中。

我在合并时得到了下面的消息。

我的分支Branch1和Branch2。请在项目文件夹中使用这些分支。

最初我只有分支1与脉泽,在这种情况下,我得到了下面提到的消息。

现在我已经签入了Branch2。

现在Branch1, Brnach2和master都在我的项目文件夹中。

现在开始合并步骤:

这是什么 起来

最后我们合并了Brnach2和Branch1

其他回答

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

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

对我来说,问题是“双引号”合并消息。所以当我去掉双重标记时,一切都神奇地起作用了。我希望能帮助别人。(抱歉我的英语不好)

当从远程上游提取时,git fetch——所有这些都为我做了一件事:

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]

在其他情况下,如果远程(起源,上游)分支不存在,我发现“Not something we can merge”错误也会发生。这似乎是显而易见的,但您可能会发现自己在只有master的repo上执行git合并origin/develop。