git 获取黑名单远程

git fetch blacklist remote

有没有办法让 git fetch --allgit fetch 的其他标志不从一个遥控器获取?

我知道有 git fetch --multiple foo bar baz,但我正在寻找更多类似 git fetch --exclude remote_rarely_fetched_from_needs_vpn 的东西。

否则我必须等待命令超时,因为无法与该远程建立网络连接。

或者,如果我可以从主机名匹配 github.com 的所有遥控器中获取数据,这对我的情况也适用,但我有兴趣查看所有选项,如果有的话。

git config remotes.usual "origin upstream qa maint vendor and so forth"
git remote update usual

如果预先列出常见的嫌疑人很容易。要扫描您的远程网址,您可以

git config --get-regexp remote\..*\.url

稍加简单的 sed'ing 即可获得具有您想要的任何模式的远程名称。

got me on the right track. I managed to find this piece of text in the documentation for git remote:

update

Fetch updates for a named set of remotes in the repository as defined by remotes.<group>. If a named group is not specified on the command line, the configuration parameter remotes.default will be used; if remotes.default is not defined, all remotes which do not have the configuration parameter remote.<name>.skipDefaultUpdate set to true will be updated.

通过 git config 文档挖掘,我找到了完全符合我需要的选项:

remote.<name>.skipDefaultUpdate

If true, this remote will be skipped by default when updating using git-fetch[1] or the update subcommand of git-remote[1].

要在我的 repo 上设置这个选项,我只需这样做:

git config remote.remote_rarely_fetched_from_needs_vpn.skipDefaultUpdate true