【问题标题】:Git sync multiple mastersGit同步多个master
【发布时间】:2014-10-20 10:42:30
【问题描述】:

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

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

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

非常感谢

【问题讨论】:

标签: git gitlab mirror


【解决方案1】:

这在“复制 Git 存储库”的标题下得到了很好的解释。取自githubarticle

如果您想在另一个位置镜像存储库,包括从原始位置获取更新,您可以克隆一个镜像并定期推送更改。

# 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。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 您好,感谢您的回复。你会在你的 Jenkins 服务器上运行哪些 git 命令来确保存储库保持同步?
    猜你喜欢
    • 1970-01-01
    • 2019-10-22
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2012-09-05
    相关资源
    最近更新 更多