2010-04-30 65 views
4

我是新來的git所以請隨時RTFM我...的Git回購在多臺計算機 - 備份和保持同步

我有多個開發用地(其中沒有一個可以通過與每個網絡通信其他),並且在任何時候都在一些項目(少數人)上工作。

我理想的情況是在每個站點一個集中的存儲庫,可以從我們自己的(個人)回購發展,但發展。然後,我希望能夠通過集中式回購(例如,通過USB密鑰)進行同步。 (1)我是git的新手,並且通過玩耍打破我的(個人)本地回購,(2)一些項目被擱置,所以我希望能夠通過刪除它們來釋放磁盤空間。這是我的問題的「備份」部分。

我也希望能夠使用'git clone --bare'作爲我的集中式回購(和USB密鑰回購?),因爲我們不需要完整的結帳,只是git的好處。

但是,我似乎無法得到一個光禿禿的回購工作作爲回購我可以推。我使用'git remote'來設置一個遠程源(類似於http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository),但我無法'git push'工作 - 看起來我需要一個簽出的回購。

是否有其他人使用這種回購/開發結構或有什麼基本的關於我失蹤的git使用?

我想過的解決方案可能不起作用 - 如果我在每個站點都有一個'git clone --bare',然後在我的可移動媒體上使用git repo,併爲每個站點設置了遠程控制,那麼我可以('拉')同步我的USB密鑰與每個回購。但是,我可以從我的USB密鑰更新網站回購?我可以從USB推送嗎?

+0

您在這些地方沒有互聯網連接嗎? USB密鑰的原因是什麼?這些位置不需要能夠通過網絡「互相看到」,它們只需要能夠連接到可以存儲中央遠程存儲庫的單個位置。 – 2010-04-30 00:44:57

+0

認爲「安全」。基本上(不是我的*邏輯),我們可以有外部驅動器,但不是外部網絡連接。所以沒有git連接,沒有ssh,沒有邏輯推理...... – olaf 2010-04-30 01:11:38

回答

2

好的,讓我開始說,由於無法連接到互聯網而導致的整個安全前提完全錯位。我不應該在不知道所有事實的情況下進行判斷,但考慮到您在StackOverflow上提出這樣一個基本問題的事實意味着您不是開發下一代軌道槍的跨國公司,並且受到持續的黑客攻擊。

剝奪互聯網連接的開發者的安全性提高了約0.01%,並減緩了他們的速度,因爲他們無法研究相關的東西大約1000%。您需要開始倡導一個更好的環境給負責任的人,並在某個服務器上擁有一個託管存儲庫。您可以使用gitorious或gitosis支付私人github資源庫或在Linux上推出自己的git repo。

至於實際問題。您只需將裸倉庫,而不是它。你在最後一段的正確軌道上。

  1. 在每個站點設置裸回購。
  2. 在U盤上設置裸露的回購。
  3. 開發人員將其更改推送到站點回購。
  4. 在每個網站上設置遠程控制桿。
  5. 從每個站點回購站拉到USB存儲棒。

這是理論上的一個很好的解決方案,但您會發現在同步回購協議時您會在某個時間點發生衝突。在這種情況下,開發人員需要解決這些衝突。

更好的解決方案是沒有網站存儲庫。由於整個存儲庫都包含在一個目錄中,因此您可以根據需要在本地製作儘可能多的副本。這也將解決您的「玩耍」問題。

如果開發者需要共享代碼,他們可以相互拉扯。然後USB棒進來,他們拉/推他們的變化。這樣,造成衝突的人就是負責合併的人。

讓我再次重申這將是多大的生產力負擔。擁有一個涉及多個人的共享存儲庫已經非常困難。由於手動同步站點的時間延遲很可能是存在錯誤的,它今天不會被修復,而是在第二天。

+0

**要停止任何進一步的評論** - 我100%同意圍繞網絡策略給出的虛假安全感的想法。這不是我的決定,在這方面我是一個簡單的無人機。 – olaf 2010-04-30 02:26:24

+0

@ Igor - 另外...感謝關於這個(痛苦)過程如何發生的想法。 – olaf 2010-04-30 02:26:50

+0

我認爲你明確表達的最重要的一點是**解決衝突時同步** ...它不能(?)與裸回購一起工作 - 這使我們的計劃不會失敗。我們的新方法是,無論何時我們想要更新USB驅動器,從它「拉」,解決衝突,然後「推」它。我想我們會通過在本地複製文件夾來解決備份問題。沒有我希望的那麼幹淨,但仍然是一個可行的解決方案。謝謝! – olaf 2010-05-03 00:28:40

0

另一種解決方案,當涉及到備份,從中可以從拉是:

git bundle

這樣一來,您有:

  • 只有一個文件到您的USB複製鍵
  • 您可以直接從該捆綁中更新您的本地回購

注意:您很幸運能夠使用USB密鑰。在我們公司,這些USB端口很久以前就被封鎖了;)另一個「安全」(大雙引號)措施...

+0

我們查看了捆綁包,但它看起來不像推/拉那麼容易。感謝這個建議 - 我學到了一個新的命令。 :) – olaf 2010-05-03 00:31:03