因为使用git不久。同事教我的更新远端分支并merge的方法是:先执行gitfetch,然后在自己的分支执行gitmergeorigin/同事分支。这样来更新合并。百度了下gitfetch是将远端的所有分支更新到本地的FETCH_HEAD,但为啥merge的时候仍然是merge的远端的origin/同事分支,而不是merge的FETCH_HEAD?gitfetch更新所有分支到本地FETCH_HEAD,感觉也没用啥作用,还是要执行gitmergeorigin/同事分支来merge远程分支啊。那么gitfetch为啥不能省略呢?
2 回答

智慧大石
TA贡献1946条经验 获得超3个赞
只有gitfetch真正读取远程的分支,然后在本地创建远程分支的一个拷贝。这个拷贝的名字叫origin/同事分支。
gitmerge只是在操作远程分支在本地的一个拷贝。

互换的青春
TA贡献1797条经验 获得超6个赞
远程跟踪分支是远程分支状态的引用,它们以(remote)/(branch)形式命名。通常最好不要手动的移动它们,当你做任何网络通信操作时,它们会自动移动,比如我们使用的gitfetch命令。使用gitfetch命令会从指定远程抓取本地没有的数据,并且更新本地数据库,移动本地的远程指针指向新的、更新后的位置。需要注意的一点就是当抓取到新的远程跟踪分支时,本地不会自动生成一份可编辑的副本(拷贝)。从另一方面来说它并不会修改工作目录中的内容,而只会获取数据然后让你自己合并。如果你想省略合并的步骤的话,大多数情况下你可以使用gitpull命令,它工作的像是先使用gitfetch后紧接着一个gitmerge命令。
添加回答
举报
0/150
提交
取消