377

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

fatal: branch-name - not something we can merge

如何解决此错误?

4

29 回答 29

464

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

如果这不是问题(如我的情况),很可能您没有要合并的分支的本地副本。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
于 2013-05-31T17:41:29.383 回答
131

这是一个愚蠢的建议,但请确保分支名称中没有错字!

于 2014-01-05T01:17:48.677 回答
87

从远程上游拉时,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]

在其他情况下,我发现如果远程(原点,上游)分支不存在,也会发生“我们不能合并的东西”错误。这似乎很明显,但您可能会发现自己git merge origin/develop在一个只有master.

于 2015-08-25T20:37:47.087 回答
29

我也有这个问题。分支看起来像“用户名/主控”,这似乎让 git 感到困惑,因为它看起来像我定义的远程地址。对我来说使用这个

git merge origin/username/master

工作得很好。

于 2014-12-04T23:39:05.363 回答
27

以下方法每次都适用于我。

git checkout master
git pull
git checkout branch-name-to-be-merged
git pull
git checkout branch-name
git pull
git merge branch-name-to-be-merged
于 2018-09-14T07:15:16.487 回答
15

这可能是因为该分支不在您的本地。合并使用前

git fetch origin
于 2018-04-11T08:07:26.167 回答
13

这个答案与上述问题无关,但我遇到了类似的问题,也许这对某人有用。我正在尝试将我的功能分支合并到 master,如下所示:

$ git merge fix-load

为此收到以下错误消息:

合并:修复加载 - 不是我们可以合并的东西

我研究了所有解决方案,但并非没有任何解决方案。

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

于 2018-08-29T13:23:45.930 回答
8

如果您不使用origin关键字并且分支不是您自己的分支,您也可能会遇到此错误。

git checkout <to-branch> 
git merge origin/<from-branch>
于 2020-07-01T23:57:55.343 回答
7

此错误表明您要合并更改的分支(即在您的情况下为分支名称)在您的本地不存在,因此您应该签出分支并获取本地更改。结帐到您的主分支并获取,然后按照以下步骤操作:

git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name
于 2018-08-03T06:32:03.960 回答
7

您收到此错误是因为您要合并的分支在您的本地存储库中不存在。

因此,首先通过以下命令检查要合并到 master 分支的分支:

git checkout branch_name_to_merge

在此之后尝试通过以下命令将其与 master 分支合并:

git merge branch_name_to_merge
于 2016-09-15T13:07:12.893 回答
6

我今天在直接从master中提取后将另一个分支合并到我的分支时遇到了这个问题,我必须先签出并拉出我正在合并的分支,然后我才能成功地将这个分支合并到我的分支中。

git checkout branch-to-merge
git pull
git checkout my-branch-name
git merge branch-to-merge
于 2021-04-27T10:50:07.447 回答
3

我在执行时遇到了这个错误git merge BRANCH_NAME "some commit message"- 我忘记为提交消息添加 -m 标志,所以它认为分支名称包含评论。

于 2014-03-03T13:25:59.463 回答
3

在我看来,我错过了用远程仓库映射我的本地分支。我在下面做了,效果很好。

git checkout master
git remote add origin https://github.com/yourrepo/project.git
git push -u origin master
git pull
git merge myBranch1FromMain
于 2019-05-19T12:13:49.413 回答
2

如果包含引用的字符串是由另一个 Git 命令(或任何其他 shell 命令)生成的,请确保它的末尾不包含回车。在将字符串传递给“git merge”之前,您必须将其剥离。

请注意,发生这种情况时非常明显,因为错误消息在 2 行:

merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
 - not something we can merge
于 2014-09-24T10:10:39.053 回答
2

我们收到此错误是因为我们在分支名称中有一个逗号 (,)。我们删除了本地分支,然后以不带逗号的新名称重新检查它。我们能够成功地合并它。

于 2016-10-12T21:53:00.087 回答
2

我知道现在回答很晚,但我也遇到了同样的问题,所以我运行了以下命令

git checkout master

接着

git pull origin branch-name

它解决了我的问题

于 2021-03-31T09:22:41.653 回答
2

就我而言,问题出在分支名称中。我的新分支名称包含括号,一旦我重命名它并删除括号,它就会排序。

于 2020-09-01T08:49:44.430 回答
1

对于后代:就像 AxeEffect 所说的那样......如果您没有拼写错误,请检查您的本地分支名称中是否有荒谬的字符,例如逗号或撇号。正是刚才发生在我身上的事。

于 2015-07-13T14:37:37.107 回答
1

您尝试合并的分支目前可能无法被您的 git 识别,因此请执行 git branch 并查看您要合并的分支是否存在,如果不存在则执行 git pull ,如果您这样做git branch,则该分支现在可见,现在你表演git merge <BranchName>

于 2020-06-16T08:34:27.573 回答
1

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

git checkout main
git fetch
git checkout branch_name
git fetch
git checkout main
git fetch
git merge branch_name
于 2020-11-25T15:06:36.750 回答
1

我必须建议检查所有分支或您正在寻找的分支首先可用

git branch -r

从列表中检查

origin/HEAD -> origin/main
origin/feature/branch_1
origin/feature/branch_2
origin/feature/branch_3
origin/feature/branch_4
origin/feature/your branch

建议是从 origin 本身复制列表然后执行git merge origin/feature/branch_2。复制粘贴将删除拼写错误。

于 2021-12-22T10:02:33.810 回答
1

就我而言,我试图从 git 存储库的子目录执行 git 命令。请确保它是你用 git 初始化的目录,而不是它的子目录。

于 2021-07-22T14:10:54.353 回答
1

我建议检查您是否能够切换到您尝试合并的分支。

即使我想合并的分支在本地存储库中并且没有拼写错误,我也收到了这个错误。

我忽略了本地更改,以便可以切换到分支(也可以首选存储或提交)。之后我切换回初始分支,合并成功。

于 2016-08-16T15:26:01.840 回答
0

对我来说,问题是合并消息中的“双引号”。因此,当我删除双标记时,一切都神奇地起作用了。我希望能帮助别人。(对不起我的英语不好)

于 2019-06-10T15:32:12.587 回答
0

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

我在合并时收到以下消息。

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

最初我只有带有maser的Branch1,在这种情况下,我收到了下面提到的消息。

在此处输入图像描述

现在我已经签出到 Branch2。

现在Branch1Brnach2master都在我的项目文件夹中可用。

现在开始合并步骤:

  1. git checkout Brnach1
  2. git合并分支2

最后我们将Brnach2Branch1合并

于 2021-08-12T13:26:35.037 回答
0

我有一个带有 master 的工作树,另一个分支在两个不同的工作文件夹中签出。

PS C:\rhipheusADO\Build> git worktree list
C:/rhipheusADO/Build         7d32e6e [vyas-cr-core]
C:/rhipheusADO/Build-master  91d418c [master]

PS C:\rhipheusADO\Build> cd ..\Build-master\

PS C:\rhipheusADO\Build-master> git merge 7d32e6e #Or any other intermediary commits
Updating 91d418c..7d32e6e
Fast-forward
 Pipeline/CR-MultiPool/azure-pipelines-auc.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

PS C:\rhipheusADO\Build-master> git ls-remote
From https://myorg.visualstudio.com/HelloWorldApp/_git/Build
53060bac18f9d4e7c619e5170c436e6049b63f25        HEAD
7d32e6ec76d5a5271caebc2555d5a3a84b703954        refs/heads/vyas-cr-core 

PS C:\rhipheusADO\Build-master> git merge 7d32e6ec76d5a5271caebc2555d5a3a84b703954
Already up-to-date

PS C:\rhipheusADO\Build>  git push
Total 0 (delta 0), reused 0 (delta 0)
To https://myorg.visualstudio.com/HelloWorldApp/_git/Build
   91d418c..7d32e6e  master -> master

如果您只需要合并最新的提交:

git merge origin/vyas-cr-core 
git push

和我一直做的一样:

git checkout master # This is needed if you're not using worktrees
git pull origin vyas-cr-core
git push
于 2020-04-10T20:56:02.430 回答
0

git rebase the-branch-to-be-merged

我使用这个 git 命令解决了这个问题,但rebase适用于某些情况

于 2020-11-25T09:54:57.197 回答
0

对我来说,当我尝试这个时出现了问题:

git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop

所以实际上我应该写master而不是develop,因为 master 是 Subtree 的分支名称,而不是我的实际分支。

于 2017-11-15T09:14:42.100 回答
0

这可能听起来很奇怪,但请记住设置您的 git 电子邮件和名称:

git config --global user.email "MY@EMAIL.COM"
git config --global user.name "FIRST_NAME LAST_NAME"
于 2019-03-28T17:03:59.867 回答