【发布时间】:2011-07-30 00:01:31
【问题描述】:
我有 2 个裸存储库。它们是这样制作的:
ssh git@primary.com
git init --bare repo1
ssh git@backup.com
git clone --bare git@primary.com:repo1
一个用于开发(我们称之为primary),一个用于备份(以防第一个无法访问)。是否可以自动同步它们——比如在备份时做git pull。
我猜你不能合并或拉入裸存储库。是否有另一种方法可以使备份存储库保持最新状态,而不是这样:
ssh git@backup.com
rm repo1 -fr
git clone -- bare git@primary.com:repo1
当然,当有一段时间无法访问主节点并且我使用备份时,我会想要更新主节点。
另外,将 2 个遥控器添加到工作存储库是一种解决方案,但您必须不断向它们推送,如果其中一个无法访问,则不会发生这种情况。
所有冲突都在非裸存储库中解决
编辑为什么需要备份存储库:
我们使用远程存储库来交换代码,并且每天都需要它。通常人们不需要其他开发人员编写的代码,但情况并非总是如此。我们与primary失去了3天的联系,发展并不容易。我在另一台服务器上创建了第二个存储库并克隆了本地,但我必须为很多项目这样做,而且很耗时。我更喜欢自动更新第二个存储库。
【问题讨论】:
-
只是一个简短的建议(不是一个完整的解决方案):您可以在“主要”上使用提交后挂钩将更改推送到“备份”,而不是从那里拉出来。但是,我没有看到“备份”存储库的原因,因为这最初是使用分布式 vcs 的原因:每个克隆都是备份。
标签: git git-merge git-pull git-fetch