1

我有一个由几台计算机组成的本地网络,每台计算机都有一个相同代码的本地 Git 存储库,不同的开发人员在处理它们。我想找到一种方法来将每个本地存储库中的更改与所有其他存储库中的更改同步,而无需使用集中式服务器。

(如果您有兴趣,这是因为任何计算机都可能(而且经常会)遭受突然的磁盘故障,通常会导致其上的所有数据丢失,因此我无法承受单点故障.)

我见过几个工作流可能性的例子,但它们都需要设置有固定的远程系统。

我想知道的是:
如何设置一组可以与网络中所有其他计算机中的存储库同步的存储库,就像在全网状拓扑中一样?

然后我将如何将计算机添加/删除到这个存储库网络?

4

2 回答 2

0

共享存储库很容易。只需在每个开发人员的系统上设置一个公共存储库。

要自动同步到每个人,您可能必须编写某种 shell 脚本来执行存储在 repo 本身中的推送和拉取操作。要添加计算机,您只需git push new-computer在脚本中添加一个。

但是,集中式服务器并不是 DVCS 的“单点故障”。如果它出现故障,您只需从其他人的存储库中协作,直到它恢复。您增加了很多复杂性,以避免发生相当容易解决的相对罕见的情况。

于 2012-09-04T21:53:51.703 回答
0

使用集中式服务器。如果集中式服务器上的磁盘发生故障,您不会丢失所有数据。如果他没有使用集中式服务器,每个开发人员都将拥有相同的完整存储库副本。要恢复,您的开发人员只需指定一个新的集中式服务器并推送到该服务器即可。

于 2012-09-06T00:59:11.300 回答