如果项目要给别人源码包,直接把工作目录压缩有时会把 .git、本地配置或构建产物一起带进去。可以让 Git 按仓库版本生成归档:
环境:Git 2.25+,在已有提交的仓库里执行。
git archive --format=tar.gz --prefix=demo-1.0.0/ -o demo-1.0.0.tar.gz HEAD
tar -tzf demo-1.0.0.tar.gz | head
它只会打包提交里的文件,不包含 .git 目录;仓库里标了 export-ignore 的路径也会被排除。先用 tar -tzf 看清单,再上传或交给构建流程。
如果归档里需要版本号,可以把 HEAD 换成 tag,例如 v1.0.0。未提交的本地改动不会出现在包里,这点发布前最好确认一下。