我正在寻找一种在2 git git服务器上自动同步(镜像)一个repo的方法。 不幸的是,出于权限原因,我不能拥有一台服务器。
人们应该能够将更改(和分支)推送到其中一个服务器,并且这些更改应该在另一台服务器上自动复制。
关于如何做到这一点的任何想法?
非常感谢
答案 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之类的东西。有一些工具。