2011-08-20 128 views
22

我不太熟悉版本控制的術語或實踐和過程。製作遠程git存儲庫的本地副本

這是我想做的事:

  1. 我想從互聯網上的Git庫下載文件夾中。克隆正確的方式來做到這一點?不會克隆保留不必要的元數據文件?有沒有辦法做一個「乾淨」的下載?

  2. 我想建立一個包含這個文件夾上,我現在可以使用版本控制的本地存儲庫。也就是說,當我做一個提交時,我的本地存儲庫被更新。

  3. 最後,我想這個地方回購是在本地網絡上訪問,這樣我可以從任何其他計算機在局域網上下載它。

回答

19
  1. 克隆是正確的方式,但會下載遠程Git倉庫的所有目錄。
    git clone of Git Reference
  2. clone命令將創建一個工作樹已經簽出回購和git的代表完整的回購
  3. 你需要有爲了其他克隆/推/拉至少一個共享路徑你的回購。
    git local protocol

如果你不熟悉這些操作,我建議你遵循git immersion提出的簡單exercices。

1

是'git clone'是要走的路。這將爲您提供所有數據並允許您進行提交。只要新的回購在局域網中可見,其他計算機也應該能夠從中克隆。

3

你不能從一個混帳回購協議下載單個文件或文件夾,因爲Git跟蹤一個項目的全部狀態,作爲一個整體,而不是單個文件。有可能從遠程repositoy只克隆一組有限的修訂(稱爲淺克隆),但這些克隆僅限於有限的一組操作,例如,您不能從淺克隆中克隆,或從這樣的回購。

如果git repo的大小困擾你,你可以使用git gc來讓git重新組織對象數據庫,這有時可以獲得大小改進。

如果你想有一個本地緩存,您可以使用git clone --mirror $REMOTE_URL以創建一個克隆,這

您可以從此本地緩存回購庫中克隆新的工作回購站,並直接將其推入上游回購站(您需要在工作副本中將git remote add upstream $REMOTE_URL添加到上游回購站的鏈接,之後您可以git push upstream),也可以推入本地緩存回購,並從那裏推到上游回購。

2

雖然git clone是步驟1 & 2的權利,但您可能需要閱讀一些git書籍,例如Progit/Community書籍等,以獲得步驟3的最佳方法以及git哲學的適當風味。

Git,作爲分佈式 VCS儘量避免「單一中央存儲庫」,您的「本地回購網站可在本地網絡上訪問」可能會提示。你可以在網絡上有一個裸回購,它允許許多推/拉,但這不同於在網絡上使用本地回購,與工作目錄,並且只有你使用它作爲如果它是本地驅動器。

+0

好的。我想從兩臺不同的機器上處理我的項目,並希望它們保持同步。所以我應該把資源庫放在其中一臺機器上(比如primary),在另一臺機器上克隆它(比如secondary),添加一些從主服務器到輔助服務器的「遠程」鏈接,然後進行推送並保持同步。那是這種方式嗎? – AnkurVj

+0

如果僅僅是你,並且你從兩臺機器上不相連地工作(也就是說你永遠不會同時使用aka登錄),那麼在網絡驅動器上安裝repo是合理的,並且這樣它總是同步的,無論你從哪裏登錄。顯然你會招致一些網絡延遲,並且你必須確保備份和安全性,但是它避免了無休止的克隆/推/拉操作。 –

相關問題