Git:在本地 merge 远程分支

标签 git repository branch git-branch

我已经通过 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, run git 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/

相关文章:

git - 在所有提交中将 CRLF 替换为 LF

git - SVN 历史在 git 中丢失

Git-tfs 试图从旧的 tfs 服务器而不是我们的新服务器中 pull

svn - 如何将 1.4.3 TortoiseSVN 创建的存储库升级到 1.6.x?

git - 避免本地提交丢失工作?

java - 如何使用 Spring Data JpaRepository 在所有列中查找字母

java - 如何在CVS中自动复制项目

Svn 合并主干和分支

Git:如何列出 merge 分支上的提交?

Git 分支仍然与 master 在同一行