如何同步两个 git 裸存储库?

Posted

技术标签:

【中文标题】如何同步两个 git 裸存储库?【英文标题】:How to have synchronize two git bare repositories? 【发布时间】:2014-08-18 16:08:45 【问题描述】:

是否可以将 git 裸仓库克隆为新的裸仓库?例如:

git init --bare mainRepo.git

然后在远程服务器中:

git clone --bare xxx@server:/path/mainRepo.git repoReplica.git

然后使用 cron 作业将更改从 repoReplica.git 发送到 mainRepo.git,这样我就可以让 2 个团队工作,一个直接使用 mainRepo.git,第二个使用 repoReplica.git

有可能吗?以及如何?

【问题讨论】:

【参考方案1】:

这是可能的,但我建议您的同步过程:

不使用 cron 使用post-receive hook 可以将收到的内容推送到另一个仓库 将同步限制在一个分支 使用不同的分支

意思:

repo1 会将master 推送到repo2master_fromrepo1

git push repo2 master:master_fromrepo1

repo2 会将 master 推送到 repo1master_fromrepo2

git push repo1 master:master_fromrepo2

【讨论】:

感谢@VonC,我必须阅读才能使用它。但是,你为什么建议使用不同的分支? @MadMad666 确保快进推送,而不是在使用一个唯一分支从两个存储库推送时潜在的合并冲突。

以上是关于如何同步两个 git 裸存储库?的主要内容,如果未能解决你的问题,请参考以下文章

如何将普通的 Git 存储库转换为裸存储库?

如何在 svn 上,在 Windows 上,用一个裸仓库镜像 git

Git:在裸存储库中更改Active Branch的正确方法?

裸存储库中的 git ls-files

Windows、Git 和裸存储库的 SSH url/路径

markdown 使用git push为项目部署创建一个裸的远程git存储库