9

我正在寻找一种在 (2) 台服务器之间自动同步 Git 存储库的方法,以便它们可以从第三点互换。

情况如下:我们在所有项目中大量使用 git,并且一些 Repositories 的大小增长得相当快。目前我们有一个中央服务器,每个人都在向/从这个服务器推/拉。然而,这一切都通过互联网连接,因此不是最快的方式。

想法:在办公室中放置另一台服务器,并在那里拥有所有 git 存储库以供办公室使用。该服务器需要与在线服务器同步。充其量,用户甚至不会通过一些 dns 调整知道他们使用的是哪一个,因此当连接到那里的网络时,在线服务器存储库的地址会解析为办公室内的存储库。

有没有人已经在做类似的事情了?或者有没有更简单的方法来完成目标。

4

2 回答 2

4

我会看到这样的机制很容易用SSH 协议完成(这意味着像gitolite这样的框架在 LAN 存储库和 WAN http 存储库中都存在),因为这样您就可以轻松地将 ssh强制命令机制扩展到:

  • 首先检查两个repo是否同步
  • 如果本地 repo 不如远程 repo 最新,则拒绝该命令
  • 将本地存储库与所需的远程存储库同步

使用钩子来做到这一点更加复杂,并且需要为每种服务器端钩子仔细设置,以便始终保持同步机制。

于 2010-11-26T12:43:31.663 回答
0

Gitolite 具有镜像存储库的功能。可以将办公室的一台设为master,在线的一台设为slave,并允许推送到其中一台。

于 2012-06-15T14:37:38.020 回答