
% 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 не может распаковать архив tar, созданный "git archive". Видимо, есть какие-то различия.
Причина, по которой я спрашиваю, в том, что я хотел бы иметь возможность распаковывать архив tar из git на Windows, а 7zip — отличная утилита. Есть ли какой-нибудь флаг/обходной путь (кроме распаковки архива tar, созданного git, и упаковки его с помощью 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 для архивирования, вы можете удивиться, что нет способа извлечь архив с помощью того же инструмента. Нам повезло, так как есть, из man-страниц:
git-get-tar-commit-id(1)
Extract commit ID from an archive created using git-archive.