Bri*_*ian 255 git branching-and-merging
我刚刚在git中将分支合并到master时遇到了问题.首先,我通过运行获得了分支名称git ls-remote.我们将该分支称为"分支名称".然后我运行git merge branch-name命令并得到以下结果:
fatal: branch-name - not something we can merge
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
Bri*_*ian 319
如"我们可以合并的东西"如何出现?,此错误可能来自分支名称中的拼写错误,因为您尝试拉出不存在的分支.
如果这不是问题(如我的情况),很可能您没有要合并的分支的本地副本.Git需要两个分支的本地知识才能合并这些分支.您可以通过签出要合并的分支然后返回要合并到的分支来解决此问题.
git checkout branch-name
git checkout master
git merge branch-name
Run Code Online (Sandbox Code Playgroud)
这应该有效,但如果你收到错误说
error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.
Run Code Online (Sandbox Code Playgroud)
在签出分支之前你需要获取遥控器(可能,但不一定是"origin"):
git fetch remote-name
Run Code Online (Sandbox Code Playgroud)
end*_*ess 87
这是一个愚蠢的建议,但请确保分支名称中没有拼写错误!
Ene*_*nso 66
当从远程上游拉出时,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]
Run Code Online (Sandbox Code Playgroud)
在其他情况下,我发现如果远程(origin,upstream)分支不存在,也会发生"我们无法合并"的错误.这似乎是显而易见的,但你可能会发现自己git merge origin/develop只在一个只有的回购上做master.
spe*_*ius 22
我也有这个问题.该分支看起来像'username/master',它似乎混淆了git,因为它看起来像我定义的远程地址.对我来说这个
git merge origin/username/master
Run Code Online (Sandbox Code Playgroud)
工作得很好.
小智 16
以下方法每次都适合我.
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
Run Code Online (Sandbox Code Playgroud)
今天,当我直接从 master 拉取后将另一个分支合并到我的分支中时,我遇到了这个问题,我必须先签出并拉取我要合并的分支,然后我才能成功地将这个分支合并到我的分支中。
git checkout branch-to-merge
git pull
git checkout my-branch-name
git merge branch-to-merge
Run Code Online (Sandbox Code Playgroud)
此错误表明您想要合并的分支更改(即在您的情况下为branch-name)在本地不存在,因此您应该签出分支并获取本地更改.结帐到您的主分支并获取,然后按照以下步骤操作:
git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name
Run Code Online (Sandbox Code Playgroud)
如果您没有使用origin关键字并且分支不是您自己的分支,您也可能会遇到此错误。
git checkout <to-branch>
git merge origin/<from-branch>
Run Code Online (Sandbox Code Playgroud)
您收到此错误,因为您要合并的分支在本地存储库中不存在.
因此,首先通过以下命令检查要合并到master分支的brach:
git checkout branch_name_to_merge
Run Code Online (Sandbox Code Playgroud)
在此之后尝试通过以下命令将其与master分支合并:
git merge branch_name_to_merge
Run Code Online (Sandbox Code Playgroud)
这个答案与上面的问题无关,但是我遇到了类似的问题,也许对某人有用。我将功能分支合并到母版,如下所示:
$ git merge fix-load
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
合并:修复负载-我们无法合并的内容
我首先研究了所有解决方案,但没有一个可行。
我发现问题是我的分支名称(实际上,合并分支名称是fix-loads)上的拼写错误。
我必须建议首先检查所有分支机构或您要寻找的分支机构是否可用
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
Run Code Online (Sandbox Code Playgroud)
建议是从源本身复制列表,然后执行git merge origin/feature/branch_2。复制粘贴将消除拼写错误。
| 归档时间: |
|
| 查看次数: |
193134 次 |
| 最近记录: |