我已经通过git fetch --all提取了所有远程分支。我可以看到我想通过git branch -a合并的分支作为remotes/origin/branchname。问题是它无法进入。我不能合并或结帐。
git fetch --all
git branch -a
每当我做一个合并,我进入我想合并到的分支(例如。"git checkout branch-i-am-working-in"),然后执行以下操作:
git checkout branch-i-am-working-in
git merge origin/branch-i-want-to-merge-from
你可以引用那些远程跟踪分支~(用git branch -r列出)和它们的远程名称。
git branch -r
你需要获取远程分支:
git fetch origin aRemoteBranch
如果你想合并一个远程分支到你的本地分支:
git checkout aLocalBranch git merge origin/aRemoteBranch
注1:对于具有较长历史的大型回购,在使用git fetch时需要添加--depth=1选项。
git fetch
--depth=1
注2:这些命令也适用于其他远程回购,所以如果你在fork上工作,你可以设置origin和upstream。
origin
upstream
注3: user3265569建议使用以下别名在评论中:
在aLocalBranch中执行git combine remoteBranch 别名:< / p > combine = !git fetch origin ${1} && git merge origin/${1}
在aLocalBranch中执行git combine remoteBranch 别名:< / p >
aLocalBranch
git combine remoteBranch
combine = !git fetch origin ${1} && git merge origin/${1}
相反的场景:如果你想合并一个远程分支上的本地分支(而不是远程分支到本地分支,如上所示),你需要首先在所述远程分支上创建一个新本地分支:
git checkout -b myBranch origin/aBranch git merge anotherLocalBranch
这里的想法,是合并“你的一个本地分支”;(这里是anotherLocalBranch)到远程分支(origin/aBranch)。 为此,您首先创建“myBranch"表示该远程分支:即git checkout -b myBranch origin/aBranch部分。 而然后你可以将anotherLocalBranch合并到它(到myBranch)
anotherLocalBranch
origin/aBranch
myBranch
git checkout -b myBranch origin/aBranch
也许你想用一个本地分支跟踪远程分支:
git branch -b new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
* 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在本地指定你的远程分支。
rep_mirror/8.0
诀窍在于remotes/rep_mirror/8.0不起作用,而rep_mirror/8.0起作用。
remotes/rep_mirror/8.0
因此,像git merge -m "my msg" 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