簡體   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