我通过git fetch --all
拉出了所有远程分支。我可以通过git branch -a
看到我想通过remotes / origin / branchname合并的分支。问题是它无法访问。我不能合并或结账?
答案 0 :(得分:241)
您可以使用遥控器的名称引用那些远程跟踪分支〜(与git branch -r
一起列出)。
如果要在本地分支上合并其中一个远程分支:
git checkout master
git merge origin/aRemoteBranch
相反的情况:如果要在远程分支上合并一个本地分支(而不是远程分支与本地分支,如上所示),则需要创建 new 在所述远程分支之上的本地分支首先:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
这里的想法是将“您的一个本地分支”(此处为anotherLocalBranch
)合并到一个远程分支(origin/aBranch
)。
为此,您首先创建“myBranch
”来表示远程分支:这是git checkout -b myBranch origin/aBranch
部分。
然后您可以将anotherLocalBranch
合并到myBranch
。
答案 1 :(得分:78)
每当我进行合并时,我都会进入我要合并的分支(例如“git checkout branch-i-am-working-in
”),然后执行以下操作:
git merge origin/branch-i-want-to-merge-from
答案 2 :(得分:19)
也许你想用本地分支跟踪远程分支:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
答案 3 :(得分:11)
首先从原点获取远程分支。
git merge origin/remote_branch_name
将远程分支合并到本地分支
DS_All_users_with_additional_fields*.csv
答案 4 :(得分:2)
如果您已经提取了远程分支并执行了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答案的评论。我把它作为另一个答案,因为代码块不适合评论格式)