Git同步多个主人

时间:2014-10-20 10:42:30

标签: git gitlab mirror

我正在寻找一种在2 git git服务器上自动同步(镜像)一个repo的方法。 不幸的是,出于权限原因,我不能拥有一台服务器。

人们应该能够将更改(和分支)推送到其中一个服务器,并且这些更改应该在另一台服务器上自动复制。

关于如何做到这一点的任何想法?

非常感谢

2 个答案:

答案 0 :(得分:1)

这在标题"复制Git存储库"中得到了很好的解释。取自github article

如果要在其他位置镜像存储库,包括从原始位置获取更新,则可以克隆镜像并定期推送更改。

# Make a bare mirrored clone of the repository
git clone --mirror https://github.com/exampleuser/repository-to-mirror.git

# Set the push location to your mirror
cd repository-to-mirror.git
git remote set-url --push origin https://github.com/exampleuser/mirrored

镜像克隆包括所有远程分支和标记,但每次获取时都会覆盖所有本地引用,因此它将始终与原始存储库相同。设置推送的URL简化了推送到镜像的过程。要更新镜像,请获取更新和推送,这可以通过运行cron作业自动完成。

git fetch -p origin
git push --mirror

如果您想通过代码或Ruby脚本自动执行此操作,您也可以使用Git Duplicator Ruby gem进行自动化。

答案 1 :(得分:0)

为此你有一些部署系统,如Jenkins。在那里,您可以添加服务器并将命令放在alle服务器上运行。

例如,您可以为SSH安装一些Jenkins插件,或使用Chef / Puppet或Capistrano之类的东西。有一些工具。