如何使用git remote. 实现跨多个仓库的高效抓取?

编程语言 2026-07-09

我有不少项目,在这些项目的Git fork模型上存在差异,有的属于“集中式”的仓库,而有的则遵循“fork”模型。部分项目附带了多个“对等”的分叉,我不想一直去抓取;因此不想使用“all”功能,因为那比其他任何事情都更让人头疼。

How can remote.groups help solve this? Can a git global config be utilized? Is there anything else I should consider?

解决方案

基础用例与单仓配置

remote.<group> 实际上仅对每个Git项目起作用(见下文)

要定义具名的远端组,请编辑你的git配置(打开 .git/config 或执行 git config --edit),并添加如下内容:

[remotes] key = origin upstream group1 = remote1 remote2 group2 = remote55 remote66

组内的远端以空格分隔。

然后你就可以使用这个组的名称,如 git fetch key,甚至可以从多个组并行获取远端,如 git fetch --multiple -j4 key group1 group2

-- 答案 来自 Mariusz Pawelski

同样,这些名称也可以在 git remote 界面中使用。

全局Git配置中呢?

在全局配置层面的限制是:如果要用于的仓库中不存在 group 中的任意引用,且你尝试使用 group,那么该操作将失败。

关于更新和远端设置选项呢?

remote.<name>.skipDefaultUpdate(以及现在的 remote.<name>.skipFetchAll)可以被设置为 true,用于那些你不希望被 git remote update 更新的远端,或者通过 git maintenance 更新的远端,前提是 remotes.default 也未定义。然而,所需的工作量可以说与为每个工作仓库手动重复组定义同样繁琐,甚至更繁琐。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章