我在 GitHub 上有一个存储库,在 SourceForge 有一个空存储库。如何制作镜像并同步它们?
在 StackOverflow 上有“跨 Github、Sourceforge 和 Google 代码镜像存储库”,它解释了如何推送到多个存储库,但是当提交将在 GitHub 或 SourceForge 中时如何同步它们?
我在 GitHub 上有一个存储库,在 SourceForge 有一个空存储库。如何制作镜像并同步它们?
在 StackOverflow 上有“跨 Github、Sourceforge 和 Google 代码镜像存储库”,它解释了如何推送到多个存储库,但是当提交将在 GitHub 或 SourceForge 中时如何同步它们?
保留两个单独的远程一个用于 google 代码,另一个用于 github。
git remote add origin <<your google code repo url>>
git remote add github <<your github repo url>>
现在你有两种方法来同步 repos。
git remote update
这将从所有远程 url 中获取,但不会合并。您必须手动合并代码。或者,如果您需要两个镜像中的所有提交,您可以通过指定要合并代码的分支名称(可能是主分支)来分别从它们中提取。
git pull origin master
git pull github master
可以按照问题中的链接中所述或使用单个命令来推送到多个分支
git push origin master
git push github master
恐怕 Github 和 Source Forge 都没有提供镜像功能。
乍一看,我可以看到两个选项,但都需要第三台服务器(本地或任何云提供商)。我将其称为同步服务器。
一种选择是将同步服务器设置为从源中提取并推送到镜像。您可以为此使用一个简单的 crontab。如果您允许在两端写入,则此方法可能会出现问题。
第二个更复杂的选择是在同步服务器上创建和设置 webhook(github 和 SF 都支持)。每次您收到推送时,都会调用 webhook,并且您将被允许对订单 git 服务器执行完全相同的推送。这种方法更安全一些,但如果两个服务器同时发生两个不同的推送,仍然可能会失败。这是主-主分布式系统中的经典问题。