几个远程git存储库的同步

时间:2011-10-01 15:20:14

标签: git version-control synchronization multiple-repositories

我们有:

  1. 包含某个项目的远程存储库。
  2. 几个远程存储库,我想与之前的存储库同步。
  3. 当在第一个项目(1)中推送某些内容时,我需要将这些更改提取到其他远程存储库(2)。

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

    最简单的方法是什么?

    感谢。

2 个答案:

答案 0 :(得分: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,因此如果其他人将他们的工作推向repo1repo2,则会被自动镜像推送覆盖。)< / p>

答案 1 :(得分:1)

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