[英]git merge origin/branch vs. merge branch locally
什么是当我合并的不同origin/branchX
成branchY
和合并branchX
成branchY
?
origin/branchX
是一个远程跟踪分支,每次执行git fetch
都会通过远程存储库的更改进行更新。 另一方面, branchX
是此分支的本地版本。 branchX
可能与origin/branchX
不同步,而origin/branchX
可能与远程存储库中的实际内容不同步。
因此,合并的差异将取决于branchX
的各种变体的branchX
。 如果要将最新的branchX
合并到branchY
,则应执行以下操作:
git fetch origin # update remote tracking branchX
git checkout branchY # switch to branchY
git merge origin/branchX # merge
如果您还想在此过程中更新本地branchX
,您可以这样做:
git checkout branchX
git pull origin branchX
git checkout branchY
git merge branchX
但是,您可能需要将branchX
的本地副本合并到branchY
而不同步任何分支与远程。 例如,如果新的更改进入了遥控器上的branchX
并且您不想将它们带入branchY
,那么这将是一个典型的用例。 在这种情况下,您将执行如下合并:
git checkout branchY
git merge branchX
合并远程分支时 - 您正在使用已由其他开发人员应用于其的所有远程更改来检索它,但可能尚未在您的本地分支上(尽管尚未将您的本地更改推送到远程分支)
合并本地分支时,您将它与您在本地完成但尚未推送到远程分支的所有更改合并,但没有其他开发人员应用的所有远程更改,但可能尚未在您的当地分公司。
-*-*-* branchX
*-*-*-*-/-*-*-*-*-* Origin/branchX
想象一下,这些是您的本地和远程分支机构,您已经将更改提交两次到您当地的分支机构,并且有人添加了5次提交并推送到repo,因此您还没有在本地分支上拥有这5个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.