我刚刚遇到了一个问题,合并一个分支到主git。首先,我通过运行git ls-remote来获得分支名称。我们称这个分支为“branch-name”。然后我运行git merge branch-name命令,得到如下结果:
fatal: branch-name - not something we can merge
如何解决此错误?
我刚刚遇到了一个问题,合并一个分支到主git。首先,我通过运行git ls-remote来获得分支名称。我们称这个分支为“branch-name”。然后我运行git merge branch-name命令,得到如下结果:
fatal: branch-name - not something we can merge
如何解决此错误?
正如在“我们不能合并的东西”是如何产生的?,此错误可能由分支名称中的拼写错误引起,因为您正在尝试拉取一个不存在的分支。
如果这不是问题所在(就像我的情况一样),那么很可能您没有想要合并的分支的本地副本。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合并BRANCH_NAME“some commit message”时,我得到了这个错误-我忘记为提交消息添加-m标志,所以它认为分支名称包括注释。
如果包含引用的字符串是由另一个Git命令(或任何其他shell命令)生成的,请确保它的末尾不包含返回回车。你必须在将字符串传递给“git merge”之前剥离它。
注意,当这种情况发生时,这是非常明显的,因为错误消息在2行中:
merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
- not something we can merge
我也有这个问题。分支看起来像'username/master',这似乎让git感到困惑,因为它看起来像我定义的远程地址。我用这个
git merge origin/username/master
工作得非常好。
当从远程上游提取时,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。
我建议检查您是否能够切换到您试图合并的分支。
我得到这个错误,即使我想合并的分支是在本地存储库,没有拼写错误。
我忽略了我的本地更改,这样我就可以切换到分支(Stash或commit也可以是首选)。在此之后,我切换回初始分支,合并成功。
您得到这个错误是因为您想要合并的分支在您的本地存储库中不存在。
所以,首先用下面的命令签出你想要合并到主分支的分支:
git checkout branch_name_to_merge
在此之后,尝试通过以下命令将其与主分支合并:
git merge branch_name_to_merge
对我来说,当我尝试这样做时,问题出现了:
git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop
所以实际上我应该写master而不是develop,因为master是Subtree的分支名,而不是我实际的分支名。
这个错误表明你想要合并更改的分支(即在你的情况下branch-name)不存在于你的本地,所以你应该签出分支并获取本地更改。 签出到你的主分支并获取,然后按照以下步骤执行:
git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name
这个答案与上面的问题无关,但我遇到过类似的问题,也许这对别人有用。我试图合并我的特征分支,如下所示:
$ git merge fix-load
为此得到了以下错误消息:
合并:固定加载-不是我们可以合并
我研究了所有的解决方案,但并不是所有的都有效。
最后,我意识到问题的原因是我的分支名称的拼写错误(实际上,合并分支名称是fix-loads)。
下面的方法每次都对我有效。
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
这可能听起来很奇怪,但请记住设置你的git电子邮件和名称:
git config --global user.email "MY@EMAIL.COM"
git config --global user.name "FIRST_NAME LAST_NAME"
在我看来,我错过了映射我的本地分支与远程回购。我做了下面的工作,它工作得很好。
git checkout master
git remote add origin https://github.com/yourrepo/project.git
git push -u origin master
git pull
git merge myBranch1FromMain
我有一个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
您正在尝试合并的分支目前可能无法被您的git识别 所以执行 git分支 并且看看你想要合并的分支是否存在,如果不存在则执行 git拉 现在如果你使用git分支,分支就会显示出来, 现在你执行git merge <BranchName>
如果您没有使用origin关键字,并且分支不是您自己的分支,也可能遇到此错误。
git checkout <to-branch>
git merge origin/<from-branch>
我也有同样的问题。我用下面的命令修复了它:
git checkout main
git fetch
git checkout branch_name
git fetch
git checkout main
git fetch
git merge branch_name
我知道现在回答有点晚了,但我也遇到了同样的问题,所以我运行了以下命令
git checkout master
然后
git pull origin branch-name
它解决了我的问题
我今天有这个问题,当我将另一个分支合并到我的直接从主后,我必须先签出并拉出我合并的分支,然后我才能成功地将这个分支合并到我的分支中。
git checkout branch-to-merge
git pull
git checkout my-branch-name
git merge branch-to-merge
我的目标是将Branch2代码合并到Branch1中。
我在合并时得到了下面的消息。
我的分支Branch1和Branch2。请在项目文件夹中使用这些分支。
最初我只有分支1与脉泽,在这种情况下,我得到了下面提到的消息。
现在我已经签入了Branch2。
现在Branch1, Brnach2和master都在我的项目文件夹中。
现在开始合并步骤:
这是什么 起来
最后我们合并了Brnach2和Branch1
我必须建议先检查所有的分支机构,或者你要找的分支机构是否可用
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合并origin/feature/branch_2。复制粘贴将删除打印错误。
原因有很多:
git merge dependabot/npm_and_yarn/storybook/addon-essentials-6.4.19
merge: dependabot/npm_and_yarn/storybook/addon-essentials-6.4.19 - not something we can merge
您有一个具有特殊字符的分支名称。(就像我的情况): 解决方案:从不能合并的分支签出一个具有简单名称的新分支。这可能会有所帮助。
git checkout -b feature-addon
git checkout dev
git merge feature-addon
此错误可能是由于分支名称中的拼写错误引起的,因为您正在尝试拉取一个不存在的分支。 非常愚蠢,但很可能你没有你想合并的分支的本地副本。尝试git fetch来获取它
为了避免错别字你可以做
git fetch --all -v
然后复制您的分支机构的名称并执行
git checkout <branch-name>
git checkout master
git merge <branch-name>