2011-04-28 90 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

相关问题