2011-04-28 48 views
1

我是新來的git所以原諒我,如果這是一個愚蠢的問題。 我有一個git倉庫,我需要將倉庫的特定修訂版本複製到它自己的單獨目錄中。複製的版本本身並不需要是git存儲庫,我不需要或不需要歷史記錄或.git文件夾,而只需要知道存儲庫對於特定提交的樣子。git複製存儲庫的特定版本

所以說,我這樣做:

mkdir blah 
cd blah 
git init 
touch flim0 
git add . 
git commit -a -m "First commit" 
touch flim1 
git add . 
git commit -a -m "Second commit" 

mystery-command ~/some-folder 4be82b42cc91ac3801ad72036cec5f88b6a13bd7 

凡4be82b42cc91ac3801ad72036cec5f88b6a13bd7是「第一承諾」散,我想〜/一些文件夾是隻包含文件flim0目錄。

這是容易的/可能的,無需克隆存儲庫,然後檢出特定的修訂,然後從克隆的存儲庫中刪除.git?

回答

6
git archive master >specificversion.tar 

更換主,考慮

git archive master | (cd /tmp/exportlocation && tar x) 

git archive(像往常一樣)帶有a load of other useful options

0

更新

這是更好地使用由Sehe提到archive選項


我會做的只是簽出該特定版本:

git checkout <commit-sha1> 

然後把剛纔複製除.git目錄之外的所有內容

rcopy --exclude=.git . ~/some-folder/ 

然後你可以做

git checkout master 

再次復位存儲庫的主分支。如果你想馬上 '它檢查' 通過提交標識符

+0

這是扭曲。 '檔案'命令是正確的路要走。 – 2011-04-28 07:38:15

+0

不知道這個選項是否存在 – Ikke 2011-04-28 07:46:55

+0

我們都每天都會學到新的東西。 :) – 2011-04-28 07:47:40

相關問題