我在使用 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 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
,然后再合并远程分支。 - Jason这是一个愚蠢的建议,但请确保分支名称中没有打字错误!
当从远程上游拉取代码时,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]
在其他情况下,我发现“无法合并的内容”错误也会发生在远程(origin、upstream)分支不存在的情况下。这可能看起来很明显,但你可能会在只有master
的仓库中执行git merge origin/develop
操作。git remote add upstream
是我缺失的重要部分,解决了我的问题。我认为一个常见的错误是假设 fork 自动知道它从哪里 fork 来的。 - Brent我也遇到了这个问题。分支看起来像'username/master',这似乎让Git感到困惑,因为它看起来像我定义的远程地址。对我来说,使用以下命令解决了这个问题:
git merge origin/username/master
运行得非常完美。
origin/
。 - AsGoodAsItGets以下方法每次对我都有效。
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 merge fix-load
针对这个问题,我收到了以下错误信息:
合并:fix-load - 这不是我们可以合并的内容
我研究了上述所有解决方案,但都没有生效。
最后,我意识到问题的原因是我的分支名称拼写错误了(实际上,合并分支的名称应该是fix-loads
)。
git merge origin/fix-loads
生效了。 - Ram Patra这可能是因为该分支不在您的本地。在合并之前使用
git fetch origin
origin
关键字或者该分支不是你自己的分支,你也可能遇到这个错误。git checkout <to-branch>
git merge origin/<from-branch>
git checkout branch-to-merge
git pull
git checkout my-branch-name
git merge branch-to-merge
git checkout branch_name_to_merge
接下来尝试使用以下命令将其与主分支合并:
git merge branch_name_to_merge
checkout
该分支。 - nzaleski