Archive HEAD git archive --output=archive.zip HEAD Archive HEAD with directory prefix (like github ZIP archive) git archive --output=archive.zip --prefix=main HEAD Archive changes between two commits (bash) git archive --output=archive.zip HEAD $(git diff --name-only commit_ID_A commit_ID_B) Archive changes between two commits (PowerShell) git diff --name-only commit_ID_A commit_ID_B | Out-File -Encoding ASCII changes.txt git archive --output=archive.zip HEAD -- $(Get-Content changes.txt) Archive HEAD with excluded file/directory from .gitignore (e.g. .env, vendor, node_modules, etc.) git archive --output=archive.zip HEAD 7z a -r archive.zip vendor