2010-12-07 25 views
16

因此,我希望能夠備份可能有多個分支的git存儲庫到外部硬盤驅動器上,然後在稍後能夠將其複製回本地計算機並像往常一樣使用它?我試圖簡單地複製包含.git目錄的工作目錄文件夾,它工作。然而,我想知道這是最好的方式,還是後來有陷阱。在外部磁盤上備份整個git存儲庫的最佳方式是什麼?

回答

20

使用常規文件系統複製命令複製整個工作副本可以正常工作。您也可以壓縮/ tar備份。

如果您擔心磁盤空間,您還可以查看「git bundle」,這可能產生較小的文件。

你也可以通過在外部磁盤上啓動一個新的回購(git clone)來獲得增量備份,然後每次都提取更改(git pull)。在像git這樣的分佈式系統中,備份與工作副本之間沒有太大的區別。

+0

謝謝你這個信息解決了。對不起,遲到的接受。我走了幾天。 – racl101 2010-12-21 23:54:39

+0

我努力實現你的第三個建議,使用git進行增量備份,因爲子目錄本身是版本控制的,因此將其拉爲空。在http://stackoverflow.com/q/24198280/2533127。 – 2014-06-13 05:30:30

0

這裏沒有缺陷,git是一個完全分佈式的SCM。使用.git目錄複製工作副本是足夠的備份。

2

這是實現它的唯一方法,不需要將存儲庫克隆到外部磁盤上。但是兩種方法大致相同,除了複製你的克隆將保留任何特定於回購的配置設置。

0

複製整個事情或使用同步工具是好的。回購是完全包含和便攜式的。

5

如果您在工作樹中沒有任何更改備份,則可以使用git clone --mirror創建一個全部複製(分支,標記,絕對是所有內容)的裸副本。然後,您可以使用git push --mirror增量更新它。這是它的設計目的。

複製包括工作樹在內的整個回購,也可以起作用,但增量執行有點痛苦,顯然需要佔用更多空間。

1

彙總,

  • 你可以複製這個該死的目錄,確保它工作。
  • 您可以克隆。
  • 您可以git bundlegit archive

您還可以,

,你可以轉儲到您從後導入單個文件。

$ git fast-export --all | (cd /empty/repository && git fast-import) 
相關問題