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



基本上,我想在不克隆任何内容的情况下下载特定修订版的工作树。特别是,我不希望在结果下载中有任何.git目录。思考我所要求的另一种方式是与裸回购相反:一棵裸树。

当您只想使用代码或数据而不想修改或处理历史时,用例非常简单。

我知道git clone --depth 1,但根据我的经验,克隆的repo仍然是单独工作树的两倍大。

git archive可以完成的工作

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

请注意:REF应该只是一个命名的ref-branch、标记等。它不允许您选择特定的提交。

更新

下载并提取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 -

您可以使用git archive--prefix标志添加前缀目录,也可以参考tar文档将内容提取到其他目录中。

例如

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

相关内容

最新更新