维护和同步镜像远程Git存储库

时间:2014-05-17 11:57:26

标签: git backup

我最近使用远程git服务器(我自己的计算机),服务器出现故障,无法远程访问。

我想知道是否有正确的方法来维护两个远程存储库,以便当第一个存储库失败时,我的另一台计算机上的第二个存储库可以自动使用?

我的第二个问题是如何自动(例如通过脚本)定期同步主要和备用远程存储库,以及如何更改哪一个是默认/主要depo?

我的日常用例很简单,如下:

git clone user@host:A.git
cd A
(modify code ..)
git add .
git commit -m "..."
git push
git pull ....

所以,没有分支,冲突不是我关心的问题。主要和备份回购应该只是在不同时间点的相同工作的快照。由于可访问性问题,其中一些可能会落后。

P.S。我不是在询问如何设置(裸)远程depo的基础知识,而是使用ssh进行常规推挽。我要问的是,当其中一个失败时,是否有办法在主仓库和备份仓库之间自动切换。

感谢。

---编辑---

澄清一下,我的问题归结为:

有没有办法设置两个远程存储库,如镜像RAID(磁盘阵列),其中

  1. pull请求来自最新的回购,push请求会将更改推送到所有实时镜像。

  2. 如果其中一个回购邮件发生故障并再次返回,则会收到其他回购中累积的变化。

  3. 注意:有一个旧帖子here,会询问相关问题。但那里的答案没有解决同步问题,以及当多个repos变得不同步时会发生什么。

1 个答案:

答案 0 :(得分:1)

您可以在任何地方维护第二个裸仓(例如USB磁盘),并立即在两个遥控器上自动推送。
请参阅" pull/push from multiple remote locations"。

那或者您可以设置一个执行备份的脚本,在Git中调用 bundle 。 我最近写了一个脚本:

您可以随时运行该脚本:如果没有创建新的提交,它将无法执行任何操作。

捆绑包背后的想法是将回购保存为一个文件(比在.git树中保存大量文件更安全,并且更容易复制)。