我一直想知道是否有一个好的“git export”解决方案可以创建一个没有.git存储库目录的树的副本。我知道的方法至少有以下三种:
.git
git clone
git checkout-index
是一个第三方脚本,本质上是先
进入一个临时位置,然后
这些解决方案中没有一个真正让我感到满意。最接近的svn export可能是选项 1,因为两者都要求目标目录首先为空。但是选项 2 似乎更好,假设我可以弄清楚将树读入索引意味着什么。
svn export
实现这一点的最简单方法可能是使用git archive. 如果你真的只需要扩展的树,你可以做这样的事情。
git archive
git archive master | tar -x -C /somewhere/else
大多数时候,我需要从 git 中“导出”某些东西,无论如何我都想要一个压缩存档,所以我做这样的事情。
git archive master | bzip2 >source-tree.tar.bz2
压缩包:
git archive --format zip --output /full/path/to/zipfile.zip master
git help archive有关更多详细信息,它非常灵活。
git help archive
请注意,即使存档不包含 .git 目录,它也会包含其他隐藏的特定于 git 的文件,如 .gitignore、.gitattributes 等。如果您不希望它们在存档中,请确保您在 .gitattributes 文件中使用 export-ignore 属性并在归档之前提交它。阅读更多…
注意:如果你有兴趣导出索引,命令是
git checkout-index -a -f --prefix=/destination/path/