2014-05-17 78 views
-2

我最近使用遠程服務器的git(我自己的電腦),並在服務器發生故障,無法被遠程訪問。維護和同步鏡像的遠程Git倉庫

我想知道是否有合適的方法來維護兩個遠程存儲庫,這樣我的另一臺計算機上的第二個存儲庫可以自動第一個失敗時使用?

第二個問題是如何自動地(例如,經由一個腳本)的主要和備份遠程託管定期同步,以及如何可以改變其中一個是默認的/主depo的?

我的日常使用情況下是非常簡單的,如下:

git clone [email protected]:A.git 
cd A 
(modify code ..) 
git add . 
git commit -m "..." 
git push 
git pull .... 

所以,沒有分支和衝突是不是在這裏我的關心。主數據庫和備份數據庫應該是不同時間點的相同工作的快照。由於可訪問性問題,其中一些可能落後。

P.S.我不是問如何設置(裸)遠程depo的基礎知識,並使用ssh進行常規推拉。我問的是,如果有一種方法可以在主服務器和備用服務器之間自動切換,當其中一個服務器出現故障時。

謝謝。

---編輯---

爲了澄清,我的問題歸結爲:

有沒有辦法設置兩個遠程倉庫就像一個鏡像RAID(磁盤陣列),其中

  1. a pull請求從最新的回購請求中提取,push請求將更改推送到所有實時鏡像。

  2. 如果回購之一下去,再回來,它會拿起其他回購累積的更改。

注意:有一箇舊帖子here,它提出了一個相關的問題。但是那裏的答案沒有解決同步問題,以及當多個回購變得不同步時會發生什麼。

+0

只需在另一臺計算機上克隆,即可設置備份** R ** epository;如果你從此開始,你可能可以解決你自己的疑問 - 或者至少不要問過於廣泛/不是意見尋求的問題。 – AD7six

+0

那麼,我正在尋找一個非常具體的解決方案。我目前的工作流程已經列出,我只是問如何調整這個工作流程以配合其他回購協議。 – tinlyx

+0

你可能會認爲你的問題非常具體,但在一個問題中有幾個非常通用的問題,如果回答完全只是某人關於如何去做的意見。你當前的工作流程是「我使用git」 - 你的問題不是雪花=)。 – AD7six

回答

1

你可以保持第二裸回購任何你想要的(像U盤),以及一次在兩臺遙控器自動推送。
請參閱「pull/push from multiple remote locations」。

這或你可以設置一個腳本,做一個備份,在Git中調用一個bundle
我最近寫了一個腳本,它的作用:

您可以運行任何時候腳本:如果沒有創建新的提交,它將不會執行任何操作。

Bundle背後的想法是將回購保存爲一個文件(比在樹中保存大量文件更安全,並且更容易複製)。

+0

謝謝。這篇文章很有趣。我正在閱讀那些沒有接受的答案,其中有300個upvotes,看看它是否能解決我的問題。 – tinlyx