使用Git,是否可以在不克隆回购的情况下下载修订版?

时间:2015-02-27 10:57:00

标签: git

基本上,我想在特定版本下载工作树而不克隆任何内容。特别是,我不想在结果下载中使用任何.git目录。想到我要求的另一种方式是与一个裸露的回购交谈:一棵光秃秃的工作树。

当您只是想使用代码或数据而无需修改或使用历史记录时,用例非常简单。

我知道git clone --depth 1,但根据我的经验,克隆的回购仍然只有工作树的两倍。

1 个答案:

答案 0 :(得分:4)

git archive可以完成这项工作

尝试:git archive -vvv --remote=<REPO_URL> -o output.zip <REF>

请注意:REF应该只是一个命名的ref - branch,tag等。它不允许你选择某个提交。

<强>更新

下载并提取oneliner

$ git archive -vvv --remote=<REPO_URL> -o archive.tar <REF> && tar -xvvf archive.tar && rm archive.tar

更新2

更好的oneliner

$ git archive -vvv --remote=<REPO_URL> <REF> | tar -xvf -

您可以使用--prefix的{​​{1}}标志添加前缀目录,或者您可以参考git archive文档将内容提取到其他目录中。

例如

tar 将repo的内容提取到$ git archive -vvv --prefix=stack/ --remote=<REPO_URL> <REF> | tar -xvf -目录。