在此之前,我知道git pull和git fetch之间的区别。
但是,我想一次提取每个分支,并且我了解到存在一个命令git pull --all,但它并没有达到这个目的,因为它获取所有分支,而只是将我正在处理的分支与它的远程(以及其他类似这的堆栈溢出帖子向我保证这一点)合并。
关于man git-pull的文档引用了git fetch命令,在--all部分中表示
Options related to fetching
--all
Fetch all remotes.我的问题是,那么,理论。
由于git pull --all的名称具有误导性,因此存在它是否有意义?
以同样误导的方式引用man git-fetch是否有意义,因为git pull --all与git fetch --all不一样?
(我知道这个问题听起来可能主要是基于观点的问题,但是也许我可以从你那里了解我现在没有的这些git命令。而其他人可能也没有。)
发布于 2019-12-19 17:51:36
这很可能是因为git pull必然涉及git fetch操作。git fetch有一个--all标志,所以我们在git pull上也有一个--all标志,这样git pull就可以将完全相同的标志传递给git fetch (这绝对是它必须能够做到的)。
是的,名称可能是不同的,这可能会避免混淆,但我认为让git pull有一个名为--all-remotes的标志同样令人困惑,它最终被用作fetch的--all选项。也许,如果他们也将fetch上的fetch选项更改为--all-remotes,那么就会产生效果--但是您将提出一个重大的API更改,以便在清晰度方面可能略有改进,这通常是个坏主意。
Sidenote:据我所知,没有内置命令可以同时更新所有分支。网络中心有sync,可以做到这一点,但我的研究似乎表明,您最好的选择是创建自己的别名或函数,逐个检查所有分支。
https://stackoverflow.com/questions/59414497
复制相似问题