
git 打包命令使用git archive可以根据项目的当前所在分支提交结点项目中的.gitignore文件来打包项目代码目标产物在不附加文件情况下只包含通过.gitignore校验的文件和文件夹在打包后端代码时如果团队中缺少项目版本管理流程和规范但是项目用了 Git 来管理时执行以下命令可以方便的将项目代码进行打包并附带版本信息这样即使在线上环境也能直接定位项目版本。codeVergitdescribe HEADtouch$codeVer.txtgitarchive--formatzip HEAD-o$codeVer.zip --add-file$codeVer.txtrm$codeVer.txt可以写一个 shell 脚本来增加新建打包文件夹流程folderdistif[!-d$folder];thenmkdir$folderficodeVer$(gitdescribe HEAD)touch$codeVer.txtgitarchive--formatzip HEAD-o$folder/$codeVer.zip --add-file$codeVer.txtrm$codeVer.txt上面的命令首先创建一个带有版本信息的 txt一般结构是最近标签-上次标签后提交次数-当前HEAD所在提交哈希。然后将这个 txt 一起打包。最终的产物内就带有这个文件了。add-file 无法使用有时在 linux 上会无法使用 --add-file 选项添加文件可以用下面的脚本folderdistif[!-d$folder];thenmkdir$folderficodeVer$(gitdescribe HEAD)touch$codeVer.txt# git archive --formatzip HEAD -o $folder/$codeVer.zip --add-file $codeVer.txt# 修改后的完美兼容写法# 1. 先正常导出 Git 追踪的文件gitarchive HEAD--formatzip-o$folder/$codeVer.zip# 2. 删除不必要的文件夹# zip -d $folder/$codeVer.zip plugins/*# 3. 绕过 Git直接用系统的 zip 命令把本地文件塞进压缩包zip-g$folder/$codeVer.zip$codeVer.txtrm$codeVer.txtls-lh$folder/$codeVer.zip