“git fetch origin”和“git remote update origin”有什么区别?

117

回答有关从git仓库逐个拉取提交的问题,我被建议使用git remote update而不是git fetch。我已经阅读了两个手册,但不能说我完全理解了其中任何一个。

有人能向我解释一下git fetch originget remote update origin之间的区别吗?


4
可能是 Differences between git remote update and fetch? 的重复问题。 - user456814
1个回答

134

这样使用没有区别。

remote update是一个非常高级的命令 - 它支持分组远程 (remotes.<group> = <list>),并更新所有远程 (除了那些设置了 remote.<name>.skipDefaultUpdate 的远程),但不支持 fetch 的更多特定选项。但事实上,它与默认选项的 fetch 命令的功能完全相同。

推荐使用remote update代替git fetch实际上是建议在没有指定远程名称的情况下使用,只是为了获取全部,而不仅仅是作为参数指定的那个。这相当于git fetch --all

需要提醒的是,直到v1.6.6.1(2009年12月23日发布)fetch和remote update才真正使用相同的代码路径。即使在此之前,它们实质上也做着相同的事情,只是使用不同的代码(可能在一些边角情况下表现略有不同,但我想不出任何例外)。


1
非常有趣。+1。如果您查看Git发布说明(我在此处编译:http://pastebin.com/LNhRhQS3),似乎只有1.7.0(紧随1.6.6.2之后)允许使用"`git fetch --all"代替"git remote update`"。 - VonC
@Jefromi:挖掘信息的好方法,但我更喜欢先查看发布说明,并对缺乏所有发布说明的一个页面感到沮丧,因此我在pastebin上进行了一些复制粘贴。 - VonC
@VonC:是的,你的方法更加用户友好。我只是那些在每次拉取时都会浏览提交日志,寻找令人兴奋的新功能的人之一,所以我通常对要查找的内容有很好的了解。祝你在“正在煮什么”中挖掘好运! - Cascabel
Jefromi: "挖掘完成"(这听起来很不错,即使“挖掘完成”更正确)。http://marc.info/?l=git&m=125919742432161&w=4 将获取和远程更新的常见路径升级到主分支。--all选项早在第1.6.6rc版中就已经宣布了(http://marc.info/?l=git&m=125979629515276&w=4)。 - VonC
我看到你们对于日志和发布说明也像我一样有强迫症啊 ;) - user456814
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接