7zip 與 git 存檔所建立的 tar 格式不相容

7zip 與 git 存檔所建立的 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.

相關內容