是,不是。 v1.7.2 release notes从所有遥控器(而不只是一个)获取。
git remote update
等于git fetch
吗?
更新:更多信息!
我应该从一开始就这样做:我在Git的Git存储库中弄乱了Git发行说明(如此meta!)
grep --color=always -R -C30 fetch Documentation/RelNotes/* | less
然后我在less
中搜索了--all
,这就是我在release notes for Git version 1.6.6下找到的内容:
git fetch
了解了--all
和--multiple
选项,以从许多存储库运行访存,而--prune
选项则删除了过时的远程跟踪分支。这些使git remote update
和git remote prune
的必要性降低(尽管没有计划删除remote update
或remote prune
)。
[版本1.6.6直到December 23rd, 2009才发布,原始海报在2009年12月6日问了他的问题。
因此,您可以从发行说明中看到,Git的作者意识到git remote update
命令功能已被git fetch
稍微复制了一个事实,但他们决定不删除它,也许是为了向后兼容。现有的脚本和程序,或者可能是因为它工作量太大,并且优先级较高。
更多详细信息的原始答案
xenoterracide's answer已有3.5年历史了,Git从那以后经历了多个版本(在撰写本文时,它已从v1.6.5.5变为v1.8.3.2),并查看current] > git remote update
和git remote update
的文档,看起来它们两者都可以执行基本相同的功能,即从多个远程站点获取新的提交,并提供正确的选项和参数。
获取多个遥控器的一种方法是使用git fetch
标志:
git fetch
这将从所有已配置的遥控器获取,前提是您没有为其设置
--all
:
如果为true,则在使用
git fetch --all
或remote.<name>.skipFetchAll
的update子命令进行更新时,默认情况下将跳过此遥控器。 — git-fetch(1)这等同于使用
git-remote(1)[未指定要获取的任何远程组,并且在回购配置中也未设置git-config documentation,并且您的任何远程都未将
git remote update
设置为true。
remotes.default
没有提到remote.<name>.skipDefaultUpdate
设置,但是我咨询了全能Google并从current 1.8.3.2 documentation for Git's configuration中找到了这个有用的解释:
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
这样解释:
如果为true,则在使用
remote.<name>.skipDefaultUpdate
或the Git docs的update子命令进行更新时,默认情况下将跳过此远程控制器。>获取指定的远程组
git-fetch(1)和git-remote(1)都允许您指定多个远程对象和要获取的一组远程对象,而不是获取所有远程对象:
fetch
remote update
允许您获取作为组一部分的多个遥控器(从git fetch [<options>] <group> git fetch --multiple [<options>] [(<repository> | <group>)…]
借用另一个示例):git fetch [<options>] <group>
Mislav允许您指定几个存储库和存储库组以一次(从
$ git config remotes.mygroup 'remote1 remote2 ...' $ git fetch mygroup
中获取):允许指定多个
git fetch --multiple
和the docs参数。不能指定<repository>
。
<group>
文档中的歧义
<refspec>s
指定命令语法如下:
git remote update
请注意最后一部分,synopsis for
git remote update
?尾随的git remote update
表示您可以使用该命令指定多个组和遥控器,这意味着它的行为与git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
相同...请参见两者之间的语法是如此相似?但是,在同一文档中,
[(<group> | <remote>)…]
命令的说明仅说明了有关指定多个组和远程参数的内容,没有说明
[C]定义的存储库中一组命名的远程更新的[获取]更新。
因此,在指定多个单独的远程对象和多个远程组方面,尚不清楚
...
是否与git fetch --multiple
相同。获取单个遥控器
最后,每个人都知道获取单个遥控器的简单情况:
以外的其他任何东西。update
可能也可以使用
remotes.<group>
做同样的事情,但是正如我在上一节中提到的,
git remote update
的文档尚不清楚是否可以通过命令获取除单个group
正如我所解释的,git fetch --multiple
和git fetch <remote>
在从多个远程站点进行获取方面表现相似。它们共享相似的语法和参数,尽管git remote update <remote>
较短,因此人们可能会发现它更易于键入和使用。
[可能无法像git remote update
那样仅使用git fetch
来获取单个远程,但正如我所指出的那样,文档并不清楚。
Aside
[上面的git remote update
和git fetch
所代表的Git瓷器命令之间的功能重复不是唯一的。我注意到git remote update
和git fetch
的情况类似,因为两者都可能需要一定范围的提交才能修补到新的基本提交。
[我猜想,随着Git多年来的发展,某些功能被(不可避免地?)复制了,也许有时是为了方便最终用户(例如,将范围传递给git fetch
比传递一个范围更简单)。一遍又一遍地提交以选择范围)。显然,git remote update
并不总是接受一定范围的提交,如git rebase --onto
中所述:
[
git rebase --onto
学会了选择一定范围的提交(例如git cherry-pick
和git cherry-pick
),cherry-pick
也是如此;但是,这些不支持更好的顺序控制cherry-pick
。
是,不是。 v1.7.2 release notes从所有遥控器(而不只是一个)获取。
无需查看代码即可查看git cherry-pick
是否仅是一个shell脚本(可能),基本上,它会为每个远程服务器运行获取操作。 cherry-pick A..B
可以更精细。
是,不是。 v1.7.2 release notes从所有遥控器(而不只是一个)获取。