如上所述,
git pull
是一个很好的答案。这个
pull
命令本质上是
fetch
和
merge
;前者将把所有远程提交作为(可能是新的)分支带到您的存储库中,而后者将把该分支合并到您的当前分支中。当然,确定哪个分支将获得合并是一个小技巧。通常,您必须在每个存储库的基础上配置它。当当前签出的分支跟踪从中提取的存储库中的远程分支时,Git确实有一个特殊情况,并且该远程分支是
只有
其中一个具有更改,此时Git将简单地假设您希望将远程分支与当前分支合并并自动执行。
除了一些相当不透明的配置,
拉
还有一些其他的问题值得一提。最值得注意的是:它与
合并
命令。换句话说,如果拉入远程更改,并且在本地分支中有一些自己的更改,那么为了统一这两个分支,Git将被迫执行合并。原则上,这是很好的,但它会破坏你在未来某个时候想要做的任何再平衡。您提到您的用例是您自己的三台计算机。如果我是你,我会尽量把我的历史保持在同一个分支上,跨越三条直线。不合并计算机
一
进入机器
乙
,重新调整
乙
在变化的基础上
一
在那个逻辑分支上产生一个单一的线性历史。
要做到这一点,您必须使用
git fetch
直接指挥,而不是通过
拉
. 更具体地说,您需要这样做:
git fetch A
git rebase A/master
替换“
A/master
“使用您正在本地跟踪的远程分支的名称。本地存储库中的任何更改都将在
A/硕士
,为您提供一个线性历史记录,而不是一个短暂分离的历史记录,只是在稍后合并一些提交。