我一直在思考是否有一个好的“git导出”解决方案,可以创建一个没有.git
仓库目录的树的副本。我至少知道三种方法:
git clone
后删除.git
仓库目录。git checkout-index
提到了这个功能,但是它以“只需将所需的树读入索引...”开始,我不太确定如何做。git-export
是一个第三方脚本,基本上做了一个git clone
到临时位置,然后rsync --exclude='.git'
到最终目标。
这些解决方案都不是特别令我满意。与svn export
最接近的可能是选项1,因为两者都需要首先将目标目录清空。但是选项2似乎更好,只要我能弄清楚将树读入索引意味着什么。
git archive --format zip --output "output.zip" master -0
这个命令会生成一个未压缩的存档文件(-0 是未压缩的标志)。了解更多信息可以查看 http://git-scm.com/docs/git-archive。 - user456814git
,必须在服务器上启用archive
(所以我无法尝试)-从服务器进行“clone --depth 1”的操作仍然可能检索到大小为25 MB的仓库,其中.git
子文件夹单独占用了15MB。因此,我的答案仍然是“不行”。 - sdaaugit checkout-index
。 - nocachegit archive -o latest.zip HEAD
- Evgeni Sergeev