导出 Git 指定版本的源码归档
git archive 把某个提交或分支的文件树导出成 tar/zip,不包含 .git 目录。它适合发布源码包和构建产物,不会带上未跟踪文件。
git archive --format=tar.gz --prefix=app-1.0/ -o app-1.0.tar.gz v1.0
git archive --format=zip -o source.zip HEAD
git archive --format=tar HEAD src/ README.md | gzip > src.tar.gz
git archive --remote=git@github.com:example/app.git HEAD | tar -x
git archive --format=tar.gz -o release.tar.gz --worktree-attributes v1.0
.gitattributes:
docs/ export-ignore
tests/ export-ignore
export-ignore 可以排除目录,但要确认属性文件在目标提交里生效。export-subst 会在导出时替换 $Format$ 占位符,注意它和归档内容的关系。--remote 依赖服务端支持 upload-archive;GitHub 等平台通常不支持。git — 版本控制git-bundle — 传输完整历史tar — 打包格式