2014-10-20 59 views
1

我正在尋找一種方法來自動同步(鏡像)2個git git服務器上的一個回購。 不幸的是,我不能有一個服務器出於權限的原因。Git sync multiple masters

人們應該能夠將更改(和分支)推送到其中一個服務器,並且這些更改應該自動在另一個服務器上進行復制。

任何想法如何做到這一點?

非常感謝

+1

可能的重複:http://stackoverflow.com/questions/14288288/gitlab-repository-mirroring – 2014-10-21 12:19:49

回答

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紅寶石寶石做得一樣好。

0

對於你有一個像Jenkins一些部署系統。在那裏你可以添加你的服務器,並將命令放在alle服務器上運行。

你可以安裝一些用於SSH的Jenkins插件,或者使用諸如Chef/Puppet或Capistrano之類的東西。有一些工具。

+0

嗨,謝謝你的迴應。 你會在你的Jenkins服務器上運行哪些git命令以確保存儲庫保持同步? – 2014-10-20 10:52:48