【问题标题】:Maintaining and synchronizing a mirror remote Git repository维护和同步镜像远程 Git 存储库
【发布时间】:2014-07-05 20:06:44
【问题描述】:

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

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

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

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

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

因此,这里没有分支,冲突不是我关心的问题。主存储库和备份存储库应该只是同一工作在不同时间点的快照。其中一些可能由于可访问性问题而落后。

附:我不是在询问如何设置(裸)远程仓库的基础知识,并使用 ssh 进行常规推拉。我要问的是,当其中一个失败时,是否有一种方法可以在主存储库和备份存储库之间自动切换。

谢谢。

--- 编辑---

为了澄清,我的问题归结为:

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

  1. pull 请求从最新的存储库中提取,push 请求将更改推送到所有实时镜像。

  2. 如果其中一个 repo 宕机了,然后又回来了,它会拾取其他 repos 中累积的更改。

注意:有一个旧帖子here,它提出了一个相关问题。但是那里的答案并没有解决同步问题,以及当多个 repos 不同步时会发生什么。

【问题讨论】:

  • 您可以通过在另一台机器上克隆来设置备份 R 存储库;如果您从这个开始,您可能可以解决自己的疑问 - 或者至少可以提出不太广泛/不寻求意见的问题。
  • 嗯,我正在寻找一个非常具体的解决方案。列出了我当前的工作流程,我只是在询问如何调整它以使用替代存储库。
  • 您可能会认为您的问题非常具体,但这是一个问题中的几个非常通用的事情,如果完全回答,只是某人对如何做的看法。您当前的工作流程是“我使用 git”-您的问题不是雪花 =)。
  • 我不确定哪个部分过于通用。我当然可以澄清我的问题。但除此之外,我无能为力。我来这里只是为了问一个问题。 VonC 的回答似乎很有趣,并且指向了正确的方向。还在读书。如果您仔细阅读其中的问题和答案,您可能会了解此类问题的含义。

标签: git backup


【解决方案1】:

您可以在任何您想要的地方(如 USB 磁盘)维护第二个裸仓库,并同时在两个遥控器上自动推送。
请参阅“pull/push from multiple remote locations”。

或者您可以设置一个执行备份的脚本,该脚本在 Git 中称为 bundle
我最近写了一个脚本:

您可以随时运行该脚本:如果没有创建新的提交,它不会做任何事情。

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

【讨论】:

  • 谢谢。帖子很有趣。我正在阅读 300 次投票中未被接受的答案,看看它是否解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 2011-09-16
  • 1970-01-01
  • 2014-01-12
  • 2016-03-19
  • 2013-08-01
相关资源
最近更新 更多