2

我们有:

  1. 带有一些项目的远程存储库。
  2. 几个远程存储库,我想与前一个同步。

当在第一个项目 (1) 中推送某些内容时,我需要将这些更改拉到其他远程存储库 (2)。

我可以从第一个 repo 中提取并推送到目标存储库。

最简单的方法是什么?

谢谢。

4

2 回答 2

2

您可以从您无法控制的上游存储库克隆一个新的裸镜像存储库,例如:

git clone --bare --mirror git://github.com/whoever/whatever.git

(事实上​​,--mirror暗示--bare,所以--bare不是绝对必要的。)该--mirror选项表示,与其只从远程获取本地分支并使其成为远程跟踪分支,git 应该镜像远程存储库中具有相同名称的所有分支.

然后,您可以设置一个频繁的 cron 作业,在该存储库中运行以下命令:

git remote update
git push --mirror --force repo1 
git push --mirror --force repo2

这假设您已添加repo1repo2作为远程,并且它们指向您只想用作镜像的裸存储库。(后一个要求是因为您正在使用--force,所以如果其他人将他们的工作推送到repo1or repo2,它将被自动镜像推送覆盖。)

于 2011-10-02T08:49:12.307 回答
1

您可以在第一个远程存储库中设置一个post-receive挂钩,然后从您的第一个远程存储库推送到其他每个远程存储库。

于 2011-10-01T15:23:46.797 回答