我有一个由几台计算机组成的本地网络,每台计算机都有一个相同代码的本地Git存储库,不同的开发人员正在使用它们。 我想找到一种方法来将每个本地存储库中的更改与所有其他存储库同步,而无需使用集中式服务器。
(如果您感兴趣,这是因为任何计算机都可以 - 并且经常会 - 突然出现磁盘故障,通常导致其上的所有数据丢失,因此我无法承担单一失败点。)
我已经看过几个工作流可能性的例子,但它们都要求设置具有固定的远程系统。
我想知道的是:
如何设置一组可以与网络中所有其他计算机中的存储库同步的存储库,如full mesh topology?
然后我如何在此存储库网络中添加/删除计算机?
答案 0 :(得分:0)
共享存储库非常简单。只需在每个开发人员的系统上设置一个公共存储库。
要自动同步到每个人,您可能必须编写某种shell脚本来执行推送和拉取存储在repo中的内容。要添加计算机,只需在脚本中添加git push new-computer
即可。
但是,集中式服务器不是DVCS的“单点故障”。如果它发生故障,你只需从别人的回购协作中进行协作,直到它恢复正常。你增加了很多复杂性,以避免相对罕见的事情,这很容易解决。
答案 1 :(得分:0)
使用中央服务器。如果集中式服务器上的磁盘发生故障,则不会丢失所有数据。如果他没有使用集中式服务器,那么每个开发人员都将拥有相同的存储库副本。要恢复,您的开发人员可以提名一个新的集中式服务器并推送到那个。