如何定义 git 'remote.<group>' 用于抓取?
How do I define a git 'remote.<group>' for fetching?
我和其他人一起参与了几个项目,这些项目是根据客户的要求而发展的。通常情况下,我完全沉浸在当前的工作中,没有得到关于其他项目的最新进展。所以我每天早上做一次 "complete fetch" 这样我就不会完全迷路。我已经为我制定了一个 shell 脚本,所以它会更改到每个项目的目录,显示它的位置,并获取(不拉)和 returns 我到我所在的任何地方(注意,都是一行,只是拆开来帮助阅读):
$ pushd . && cd /W/Git/project1 && pwd && git fetch
&& cd /W/Git/project2 && pwd && git fetch
&& cd /W/Git/project3 && pwd && git fetch && popd
我只是 read a bit 关于远程。将更新为 git fetch
:
git fetch can fetch from either a single named repository or URL, or from several repositories at once if is given and there is a remotes. entry in the configuration file.
所以我认为 git fetch remote.<group>
非常适合我这个庞大的命令行的目的,简化维护和记忆。但是我找不到如何定义这样的直接参考 remote.<group>.
谁能给我一个命令行示例?
I think git fetch remote. would very well fit the purpose of my monstrous command line
我不这么认为。无论如何,您无法通过一次提取更新 3 个不同的项目,因此没有组会帮助您。
一个 git fetch
命令正在处理 一个 git 项目。文档说 git fetch
允许获取多个遥控器,但它只适用于一个项目。默认情况下,如果同步获取遥控器(从 git 2.24 开始,它可以在 parallel 中完成),但它仍然适用于一个 git 项目。
如果您想从多个项目中并行获取它们,您确实需要 运行 单独的 git fetch
命令。我建议不要将 cd
放入 git 项目,而只需调用带有 -C
参数的 git
命令,然后您可以从任何工作目录调用此命令。
因此,您所讨论的示例可能如下所示:
$ git -C /W/Git/project1 fetch && git -C /W/Git/project2 fetch && git -C /W/Git/project3 fetch
您可以使它并行,但如何做取决于您使用的shell。我在 bash 方面不是很好,但这是我尝试使用 bash 的 &
在后台执行命令和 wait
内置等待所有命令完成:
git -C /W/Git/project1 fetch -v & git -C /W/Git/project2 fetch -v & git -C /W/Git/project3 fetch -v & wait
此处三个 git fetch -v
命令在后台执行,您等待所有命令完成。我添加了 -v
详细参数以更好地查看执行的内容。
你也可以尝试循环执行:
for project in /W/Git/project1 /W/Git/project2 /W/Git/project3 ; do echo "fetching for $project"; git -C $project fetch & done ; wait
奖励:如何定义 git 'remote.' 用于抓取?
这回答了你标题中的问题。您现在知道这不是您要查找的内容,因为定义 remote.<group>
仅适用于一个 git 项目。但我实际上发现了您的问题,因为我正在搜索如何定义此 remote.<group>
配置但一无所获。所以也许有人会发现它有用。
要定义命名远程组,请编辑您的 git 配置(打开 .git/config
或执行 git config --edit
)并添加如下内容:
[remotes]
group1 = remote1 remote2 origin
group2 = remote55 remote66
组中的遥控器由空格分隔。现在您可以使用此组名称,例如 git fetch group1
,甚至可以从多个组中并行获取遥控器,例如 git fetch --multiple -j4 group1 group2
.
我和其他人一起参与了几个项目,这些项目是根据客户的要求而发展的。通常情况下,我完全沉浸在当前的工作中,没有得到关于其他项目的最新进展。所以我每天早上做一次 "complete fetch" 这样我就不会完全迷路。我已经为我制定了一个 shell 脚本,所以它会更改到每个项目的目录,显示它的位置,并获取(不拉)和 returns 我到我所在的任何地方(注意,都是一行,只是拆开来帮助阅读):
$ pushd . && cd /W/Git/project1 && pwd && git fetch
&& cd /W/Git/project2 && pwd && git fetch
&& cd /W/Git/project3 && pwd && git fetch && popd
我只是 read a bit 关于远程。将更新为 git fetch
:
git fetch can fetch from either a single named repository or URL, or from several repositories at once if is given and there is a remotes. entry in the configuration file.
所以我认为 git fetch remote.<group>
非常适合我这个庞大的命令行的目的,简化维护和记忆。但是我找不到如何定义这样的直接参考 remote.<group>.
谁能给我一个命令行示例?
I think git fetch remote. would very well fit the purpose of my monstrous command line
我不这么认为。无论如何,您无法通过一次提取更新 3 个不同的项目,因此没有组会帮助您。
一个 git fetch
命令正在处理 一个 git 项目。文档说 git fetch
允许获取多个遥控器,但它只适用于一个项目。默认情况下,如果同步获取遥控器(从 git 2.24 开始,它可以在 parallel 中完成),但它仍然适用于一个 git 项目。
如果您想从多个项目中并行获取它们,您确实需要 运行 单独的 git fetch
命令。我建议不要将 cd
放入 git 项目,而只需调用带有 -C
参数的 git
命令,然后您可以从任何工作目录调用此命令。
因此,您所讨论的示例可能如下所示:
$ git -C /W/Git/project1 fetch && git -C /W/Git/project2 fetch && git -C /W/Git/project3 fetch
您可以使它并行,但如何做取决于您使用的shell。我在 bash 方面不是很好,但这是我尝试使用 bash 的 &
在后台执行命令和 wait
内置等待所有命令完成:
git -C /W/Git/project1 fetch -v & git -C /W/Git/project2 fetch -v & git -C /W/Git/project3 fetch -v & wait
此处三个 git fetch -v
命令在后台执行,您等待所有命令完成。我添加了 -v
详细参数以更好地查看执行的内容。
你也可以尝试循环执行:
for project in /W/Git/project1 /W/Git/project2 /W/Git/project3 ; do echo "fetching for $project"; git -C $project fetch & done ; wait
奖励:如何定义 git 'remote.' 用于抓取?
这回答了你标题中的问题。您现在知道这不是您要查找的内容,因为定义 remote.<group>
仅适用于一个 git 项目。但我实际上发现了您的问题,因为我正在搜索如何定义此 remote.<group>
配置但一无所获。所以也许有人会发现它有用。
要定义命名远程组,请编辑您的 git 配置(打开 .git/config
或执行 git config --edit
)并添加如下内容:
[remotes]
group1 = remote1 remote2 origin
group2 = remote55 remote66
组中的遥控器由空格分隔。现在您可以使用此组名称,例如 git fetch group1
,甚至可以从多个组中并行获取遥控器,例如 git fetch --multiple -j4 group1 group2
.