2014-05-17 74 views
-2

我最近使用远程服务器的git(我自己的电脑),并在服务器发生故障,无法被远程访问。维护和同步镜像的远程Git仓库

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

第二个问题是如何自动地(例如,经由一个脚本)的主要和备份远程托管定期同步,以及如何可以改变其中一个是默认的/主depo的?

我的日常使用情况下是非常简单的,如下:

git clone [email protected]:A.git 
cd A 
(modify code ..) 
git add . 
git commit -m "..." 
git push 
git pull .... 

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

P.S.我不是问如何设置(裸)远程depo的基础知识,并使用ssh进行常规推拉。我问的是,如果有一种方法可以在主服务器和备用服务器之间自动切换,当其中一个服务器出现故障时。

谢谢。

---编辑---

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

有没有办法设置两个远程仓库就像一个镜像RAID(磁盘阵列),其中

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

  2. 如果回购之一下去,再回来,它会拿起其他回购累积的更改。

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

+0

只需在另一台计算机上克隆,即可设置备份** R ** epository;如果你从此开始,你可能可以解决你自己的疑问 - 或者至少不要问过于广泛/不是意见寻求的问题。 – AD7six

+0

那么,我正在寻找一个非常具体的解决方案。我目前的工作流程已经列出,我只是问如何调整这个工作流程以配合其他回购协议。 – tinlyx

+0

你可能会认为你的问题非常具体,但在一个问题中有几个非常通用的问题,如果回答完全只是某人关于如何去做的意见。你当前的工作流程是“我使用git” - 你的问题不是雪花=)。 – AD7six

回答

1

你可以保持第二裸回购任何你想要的(像U盘),以及一次在两台遥控器自动推送。
请参阅“pull/push from multiple remote locations”。

这或你可以设置一个脚本,做一个备份,在Git中调用一个bundle
我最近写了一个脚本,它的作用:

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

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

+0

谢谢。这篇文章很有趣。我正在阅读那些没有接受的答案,其中有300个upvotes,看看它是否能解决我的问题。 – tinlyx