我是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是“First commit”的哈希值,我希望〜/ some-folder是一个只包含文件flim0的目录。
这是否容易/可能而不必克隆存储库然后签出特定的修订版然后从克隆的存储库中删除.git?
答案 0 :(得分:6)
git archive master >specificversion.tar
用提交标识符替换master
如果您想立即“查看”,请考虑
git archive master | (cd /tmp/exportlocation && tar x)
git archive
(像往常一样)附带a load of other useful options
答案 1 :(得分:0)
<强>更新强>
最好使用Sehe提到的archive选项
我要做的只是结帐特定版本:
git checkout <commit-sha1>
然后只复制除.git目录
以外的所有内容rcopy --exclude=.git . ~/some-folder/
然后你可以做
git checkout master
再次将存储库重置为主分支。