7zip 与 git archive 创建的 tar 格式不兼容

7zip 与 git archive 创建的 tar 格式不兼容
% 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.

相关内容