2010-03-30 46 views
72

我曾嘗試:我怎樣向某人發送一個git存儲庫?

git archive HEAD --format=zip > archive.zip 

:然後我發電子郵件archive.zip和他們解壓的另一端歸檔.zip到一個文件夾。但是,當他們嘗試任何Git命令,他們發現這不會產生一個有效的Git倉庫

+17

對於其他人誰找到這個:git歸檔不適合工作的原因是它只打包工作樹。這是爲了做一些事情,比如製作一個你所有源碼的tarball,以供分發。 – Cascabel 2010-03-30 14:52:00

回答

97

你可以使用git bundle和電子郵件一個單一的文件

請參閱「backing up project which uses git

一個Git bundle只是一個文件,可以很容易地創建並重新導入,因爲它可以像另一個遠程處理。

一旦收到,您可以克隆它或從該文件中獲取。

正如在「Backup of github repo」所提到的,你可能會想在第一封電子郵件,讓您的捆綁與所有分支:

$ git bundle create /tmp/foo-all --all 

由於Andreas提到的意見,Scott Chacon最近(2010年3月)寫了一篇關於這個話題的「可愛」文章ProGit blog

Git's Little Bundle of Joy

+0

謝謝。我讀過這篇文章,但不清楚我的歷史和分支是否都保存了。它也允許我在以後合併這兩個存儲庫嗎? – Zubair 2010-03-30 14:07:52

+3

@Zubair:是的,所有的歷史都被保存了,與'git archive'相反! – VonC 2010-03-30 14:10:13

+2

現在我不能解開它!別擔心,我正在狩獵文檔,因爲我們會說 – Zubair 2010-03-30 14:23:30

4

正如前面的回答說的那樣,git bundle就是這樣。

如果你想使用只有一個分支(我喜歡捆綁僅主機),併發送了電子郵件創建一個包,你可以這樣做如下:

$ git bundle create /tmp/mygitbackup.bundle master

相關問題