% git archive --format tar master > archive.tar
% file archive.tar
archive.tar: POSIX tar archive
% tar cf a.tar archive.tar
% file a.tar
a.tar: POSIX tar archive (GNU)
7zip 无法解压“git archive”创建的 tar 存档。显然存在一些差异。
我之所以问这个问题,是因为我希望能够在 Windows 上从 git 解压 tar 存档,而 7zip 是一个很棒的实用程序。是否有一些标志/解决方法(无需解压由 git 创建的 tar 存档并使用 GNU tar 打包)。
答案1
git-archive
仅创建 PAX tar 档案,而 7-Zip 无法读取 PAX tar 档案。请使用 的不同格式git-archive
,对创建的档案进行后期处理以使用 重新压缩tar
,或者在 Windows 下使用其他工具。
答案2
$: git archive --list
tar
tgz
tar.gz
zip
zip 是否列在可用存档列表中?难道不能简单地使用 zip 而不是 tar 来创建它们吗?
如果你使用 git 进行归档,你可能会想,为什么没有办法使用相同的工具来提取归档文件。我们很幸运,因为从手册页上可以看到:
git-get-tar-commit-id(1)
Extract commit ID from an archive created using git-archive.