我已经通过 git fetch --all
pull 了所有远程分支。我可以通过 git branch -a
看到我想 merge 的分支作为 remotes/origin/branchname。问题是它不可访问。我无法 merge 或 checkout 。
最佳答案
您可以引用那些远程跟踪分支 ~(使用 git branch -r
列出)及其远程名称。
您需要获取远程分支:
git fetch origin aRemoteBranch
如果您想在本地分支上 merge 这些远程分支之一:
git checkout aLocalBranch
git merge origin/aRemoteBranch
注意 1:对于历史悠久的大型存储库,您需要在使用 git fetch< 时添加
.--depth=1
选项
注意 2:这些命令也适用于其他远程存储库,因此如果您正在处理一个 fork 。
注释 3:user3265569建议使用以下别名 in the comments :
From
aLocalBranch
, rungit combine remoteBranch
Alias:combine = !git fetch origin ${1} && git merge origin/${1}
相反的场景:如果你想将你的一个本地分支 merge 到一个远程分支上(而不是将远程分支 merge 到本地分支,如上所示),你需要创建一个新首先在所述远程分支之上的本地分支:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
这里的想法是将“您的本地分支之一”(此处为 anotherLocalBranch
) merge 到远程分支(origin/aBranch
)。
为此,您首先创建“myBranch
”来表示该远程分支:即 git checkout -b myBranch origin/aBranch
部分。
然后您可以将 anotherLocalBranch
merge 到它(到 myBranch
)。
关于Git:在本地 merge 远程分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21651185/