我正在尝试从文件夹创建一个 zip 文件,并且我想.git
从生成的 zip 文件中排除子文件夹。
我已经转到我要压缩的文件夹(称为 bitvolution)的父文件夹,我正在做:
zip -r bitvolution.zip bitvolution -x ".git"
但它不排除.git
子文件夹。
我尝试了各种组合,-x .git*
, -x \.git/*
, -x .git/\*
, -x \.git/\*
. 我也尝试使用 exclude 参数的完整路径......但只是没有到达那里。
正确的表达式是
-x '*.git*'
,所以完整的命令应该是:来自http://selfsolved.com/problems/zip-command-exclude-svn-director的解释:
如果您尝试压缩存储在 Git 中的项目,请使用该
git archive
命令。从源目录中:您可以使用任何提交或标签 ID,而不是
HEAD
在某个时间点存档项目。如果您想为每个文件添加前缀(例如,顶级文件夹):
您还可以在 0(无压缩)和 9(最大压缩)之间调整压缩级别,例如
有关其他选项,请参阅帮助页面 (
git help archive
)。我添加了反斜杠:
关于反斜杠的手册页:
假设您在执行此操作的机器上安装了 git,您还可以使用 git 本身来创建存档。
如果您使用的是 zsh,命令应如下所示:
如果您使用:
zip -r target_name.zip source_dir -x /*.git/*
. 如果没有 'regex',zsh 将在 zip 运行之前处理。您将收到错误消息:这是我使用的示例:
如果要忽略整个文件夹,请使用以下格式。
例如,要忽略
node_modules
每个端点中的每个文件夹:另一种方法是使用 find ,然后用 grep -v 排除
对我来说看起来更容易,你可能会 grep -v 其他你不想避免的字符串。如果你在 windows 上,使用busybox ...