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

fatal: branch-name - not something we can merge

如何解决此错误?


当前回答

在我的案例中,问题在于分行名称。我的新分支名称包含方括号,一旦我重命名它并删除方括号,它就排序了。

其他回答

我有一个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

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

git checkout <to-branch> 
git merge origin/<from-branch>

如果您正在使用旧的教程,请检查分支是否命名为main或类似的名称,而不是master。

这个错误告诉您branch-name必须是您的一个分支的名称。

当我做一个git合并BRANCH_NAME“some commit message”时,我得到了这个错误-我忘记为提交消息添加-m标志,所以它认为分支名称包括注释。

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

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