有两家公司。每家公司都运行着一个 Git 服务器。如果公司 A 签入了某些代码,则这些代码应该在公司 B 的服务器上更新,反之亦然。
两台服务器应该保持彼此同步。
服务器操作系统:Ubuntu Server 14.04
GIT:Gitlab
在我们的案例中哪种解决方案合适(镜像、挂钩等)?
答案1
我创建了一个工具,用于在 Git 存储库级别上进行同步,并将所有工作委托给项目团队。
我的工具是git-repo-sync。
它会自动同步两个远程 Git 存储库。但可以根据需要配置任意数量的同步对。
我认为服务器无法按照“Git 顺序”进行同步。
甚至 GitLab 也提出了自己的镜像在存储库级别。
从技术上讲,镜像也可以在服务器级别进行,但这将是单向同步。
人们更经常希望从两家公司进行更改,而镜像不允许这样做。
镜像一直存在局限性,除非用于备份。
假设您有一些服务器同步。
接下来,您将要求您的各方(公司)检查并重复他们的 Git 推送和提交,因为它们可能会在夜间同步期间消失。
然后,您将要求您的各方不要提交相同的 Git 分支以减轻这些问题。
减轻但不消除。
我设想了如何在 Gitlab 或 Bitbucket 级别实现一些双向同步的方法。
我只是决定不在我的工具中实现它,因为它会有点复杂。
就我而言,我有许多 Git 服务器,而不仅仅是 Gitlab 或 Bitbucket。
还有许多其他原因导致我无法同意同步服务器或 Git 解决方案。但这里没有地方可以分享我的痛苦。:)