我已经通过git取回所有远程分支。我可以看到我想合并的分支通过git branch -a作为remotes/origin/branchname。问题是它无法进入。我不能合并或结帐。
您可以引用那些远程跟踪分支~(与git branch -r一起列出),并使用它们的远程名称。
你需要获取远程分支:
git fetch origin aRemoteBranch
如果你想合并一个远程分支到你的本地分支:
git checkout aLocalBranch
git merge origin/aRemoteBranch
注意1:对于一个有很长历史的大型回购,当你使用git取回时,你会想要添加——depth=1选项。
注2:这些命令也适用于其他远程回购,所以如果你在fork上工作,你可以设置一个origin和upstream。
注3:user3265569在注释中建议使用以下别名:
从localbranch运行git combine remoteBranch 别名: getgetsource ${1} && git合并origin/${1}
相反的场景:如果你想合并一个远程分支上的本地分支(而不是远程分支到本地分支,如上所示),你需要首先在所述远程分支上创建一个新的本地分支:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
这里的想法是将“一个本地分支”(这里是anotherLocalBranch)合并到一个远程分支(origin/ branch)。 为此,您创建了第一个“myBranch”来表示远程分支:这是git checkout -b myBranch origin/ branch部分。 然后你可以合并另一个localbranch到它(myBranch)。
也许你想用本地分支跟踪远程分支:
创建一个新的本地分支:
git branch -b new-local-branch
设置这个新创建的分支来跟踪远程分支:
git branch --set-upstream-to=origin/remote-branch new-local-branch
进入这个分支:
git checkout new-local-branch
将远程分支的所有内容拉到本地分支:
git pull
如果你已经获取了远程分支并执行git branch -a, 你会得到如下结果:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
之后,您可以使用rep_mirror/8.0在本地指定远程分支。
诀窍是remotes/rep_mirror/8.0不能工作,但rep_mirror/8.0可以。
因此,像git merge -m "my msg" rep_mirror/8.0这样的命令可以进行合并。
(注:这是对@VonC回答的评论。我把它作为另一个答案,因为代码块不适合注释格式)
首先从原点获取远程分支。
git fetch origin remote_branch_name
将远程分支合并到本地分支
git merge origin/remote_branch_name
推荐文章
- 如何获得Git存储库中的Git存储库名称?
- 当git说它正在“解析delta”时,它实际上在做什么?
- Git命令将一个文件夹移动到另一个文件夹
- 在单个文件中重新启动/撤消冲突解决方案
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到
- 你可以为你的组织托管一个私有的存储库来使用npm吗?
- 如何删除多个已删除的文件在Git仓库