git remote update相当于git fetch? _
git remote update
git fetch
更新:更多信息!
我应该从一开始就这样做:我在 Git 的 Git 存储库中抓取了 Git 发行说明(太元了!)
grep --color=always -R -C30 fetch Documentation/RelNotes/* | less
然后我进行了less搜索--all,这是我在Git 版本 1.6.6 的发行说明下找到的:
less
--all
git fetch学习--all和--multiple选项,从许多存储库运行 fetch,以及--prune删除过时的远程跟踪分支的选项。这些使git remote update并且git remote prune不太必要(尽管没有计划删除remote updatenor remote prune)。
--multiple
--prune
git remote prune
remote update
remote prune
1.6.6 版直到2009 年 12 月 23 日才发布,原始发帖人在 2009 年 12 月 6 日问了他的问题。
因此,正如您从发行说明中看到的那样,Git 的作者意识到git remote update命令功能git fetch与 .这只是太多的工作,还有更高优先级的项目。
更多细节的原始答案
xenoterracide 的答案现在已经有 3.5 年历史了,从那时起 Git 已经经历了几个版本(在撰写本文时它已经从v1.6.5.5到 v1.8.3.2),并查看 当前 文档git remote update和git fetch,它看起来就像他们 都可以执行基本相同的功能,从多个遥控器获取新的提交 ,给定正确的选项和参数。
获取多个遥控器的一种方法是使用--all标志:
git fetch --all
这将从您配置的所有遥控器中获取,假设您没有remote.<name>.skipFetchAll为它们设置:
remote.<name>.skipFetchAll
如果为 true,则在使用git- fetch(1)或git- remote(1)的 update 子命令进行更新时,默认情况下将跳过此远程。’ git-config 文档
这相当于使用
没有指定要获取的任何远程组,也没有remotes.default在您的 repo 配置中进行设置,并且您的所有遥控器都没有remote.<name>.skipDefaultUpdate设置为 true。
remotes.default
remote.<name>.skipDefaultUpdate
Git 配置的当前 1.8.3.2 文档没有提及remotes.default设置,但我咨询了全能谷歌并从Mislav Marohni 膰找到了这个有用的解释:
$ git config remotes.default 'origin mislav staging' $ git remote update # fetches remotes "origin", "mislav", and "staging"
您可以定义remote update命令获取的默认远程列表。这些可以是您的队友、开源项目的受信任社区成员或类似人员的遥控器。
因此,据推测,如果您已remotes.default设置,但并非所有遥控器都列在其中,则git remote update不会获取您的存储库“知道”的所有遥控器。
至于remote.<name>.skipDefaultUpdate设置,Git 文档是这样解释的:
如果为 true,则在使用git- fetch(1)或git- remote(1)的 update 子命令进行更新时,默认情况下将跳过此远程。
不是获取所有遥控器,而是fetch允许remote update您指定多个遥控器和要获取的遥控器组:
fetch
git fetch [<options>] <group> git fetch --multiple [<options>] [(<repository> | <group>