繁体   English   中英

如何镜像和同步GitHub和SourceForge存储库?

[英]How do I mirror and synchronize GitHub and SourceForge repositories?

我在GitHub上有一个存储库,在SourceForge上有一个空存储库。 如何制作镜像并同步它们?

在StackOverflow上有“ 镜像Github,Sourceforge和Google代码的存储库 ”,它解释了如何推送到多个存储库,但是当提交将在GitHub或SourceForge中时如何同步它们?

保留两个单独的远程用于谷歌代码,另一个用于github。

git remote add origin <<your google code repo url>>
git remote add github <<your github repo url>>

现在,您有两种方法来同步回购。

git remote update

这将从所有远程URL获取,但不会合并。 您必须手动合并代码。 或者,如果您需要两个镜像中的所有提交,则可以通过指定要合并的代码(可能是主代码)的分支名称来单独提取它们。

git pull origin master
git pull github master

推送到多个分支可以按照问题中的链接或使用单个命令的说明完成

git push origin master
git push github master

我担心Github和Source Forge都不提供镜像功能。

乍一看,我可以看到两个选项,但两者都需要第三个服务器(本地或任何云提供商)。 我要称之为同步服务器。

一种选择是将同步服务器设置为从源中提取并推送到镜像。 你可以使用一个简单的crontab。 如果您允许两端写入,则可能会遇到此方法的问题。

第二个也是更复杂的选择是在同步服务器上创建和设置webhooks(github和SF支持)。 每次推送时都会调用webhook,并且您将被允许执行与订单git服务器完全相同的推送。 这种方法有点安全,但如果两台服务器同时发生两次不同的推送,仍然可能会失败。 这是master-master分布式系统中的经典问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM