zip 压缩的时候如何 排除、不包括、去除某个文件夹 .git linux macOS

相似问题:​ ​https://askubuntu.com/questions/28476/how-do-i-zip-up-a-folder-but-exclude-the-git-subfolder​

一、 zip 压缩排除指定文件夹

比如你要压缩一个文件夹 share,里面有个子文件夹 ​ ​.git​ ​ 此时要求在压缩的时候排除这个 .git 文件夹。

正确的指令应该是

zip -r share.zip ./share -x '*.git*'

二、 使用 git archive 来生成项目压缩包

我们上一步的操作无非只是为了排除无用的文件。
其实如果项目中已经使用了 git,就可以直接使用 ​​ ​git archive​ ​ 来生成压缩包,这样里面的文件只包含已经添加到 git 中的文件。

  1. 首先进入项目文件夹中
  2. 参数​ ​o​ ​ 后面是生成的压缩包路径和名字
  3. 最后一个参数是版本号,如果想导出最近的,就直接写​ ​HEAD​ ​ 即可。

注意 :这样导出的只是已经提交的修改,没有提交的修改是不会出现在压缩包中的

git archive -o ~/share.zip HEAD