I'm trying to create a zip file from a folder and I'd like to exclude the .git
sub-folder from the resulting zip file.
I have gone to the parent folder of the one I want to zip (called bitvolution) and I'm doing:
zip -r bitvolution.zip bitvolution -x ".git"
But it doesn't exclude the .git
sub-folder.
I've tried various combinations, -x .git*
, -x \.git/*
, -x .git/\*
, -x \.git/\*
. I've also tried using the full path for the exclude argument... but just didn't get there.
The correct expression is
-x '*.git*'
, so the full command should be:An explanation from http://selfsolved.com/problems/zip-command-exclude-svn-director:
If you're trying to zip up a project which is stored in Git, use the
git archive
command. From within the source directory:You can use any commit or tag ID instead of
HEAD
to archive the project at a certain point.If you want to add a prefix (e.g., a top level folder) to every file:
You can also adjust the compression level between 0 (no compression) and 9 (maximum compression) inclusive, for example
For other options, see the help page (
git help archive
).I added backslash:
man page about backslash:
Assuming you have git installed on the machine you are doing this, you can also use git itself to create your archive.
If you are using zsh, command should look like:
If you use:
zip -r target_name.zip source_dir -x /*.git/*
. without 'regex', zsh will process before zip run. You will get error message:Here's an example of what I use:
Use the following format if you want to ignore an entire folder.
For example, to ignore every
node_modules
folder, in every endpoint:another way is to use find , then exclude with grep -v
looks easier for me, you might grep -v other strings you wan't to avoid. And if you're on windows , use busybox...