The correct expression is -x '*.git*', so the full command should be:
zip -r bitvolution.zip ./bitvolution -x '*.git*'
An explanation from http://selfsolved.com/problems/zip-command-exclude-svn-director:
Answer from Isaiah on askubuntu.comThe correct incantation is
zip -9 -r --exclude=*.svn* foo.zip [directory-to-compress]You can also add a
--exclude=*.DS_Store*to exclude the annoying Mac OS X directory display metadata files.Notice that the expression passed to
--excludeis using the entire original relative directory path as the original string to match against. So.svn/*by itself doesn't work; the wildcard character in front ensures that it matches.svndirectories anywhere in the directory tree.
The correct expression is -x '*.git*', so the full command should be:
zip -r bitvolution.zip ./bitvolution -x '*.git*'
An explanation from http://selfsolved.com/problems/zip-command-exclude-svn-director:
The correct incantation is
zip -9 -r --exclude=*.svn* foo.zip [directory-to-compress]You can also add a
--exclude=*.DS_Store*to exclude the annoying Mac OS X directory display metadata files.Notice that the expression passed to
--excludeis using the entire original relative directory path as the original string to match against. So.svn/*by itself doesn't work; the wildcard character in front ensures that it matches.svndirectories anywhere in the directory tree.
If you're trying to zip up a project which is stored in Git, use the git archive command. From within the source directory:
git archive -o bitvolution.zip HEAD
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:
git archive -o bitvolution.zip --prefix=bitvolution/ HEAD
You can also adjust the compression level between 0 (no compression) and 9 (maximum compression) inclusive, for example
git archive -o bitvolution.zip -9 HEAD
For other options, see the help page (git help archive).
Here's another, slightly different, set of instructions to install zip for git bash on windows:
- Navigate to this sourceforge page
- Download
zip-3.0-bin.zip - In the zipped file, in the
binfolder, find the filezip.exe. - Extract the file
zip.exeto yourmingw64bin folder (for me:C:\Program Files\Git\mingw64\bin) - Navigate to to this sourceforge page
- Download
bzip2-1.0.5-bin.zip - In the zipped file, in the
binfolder, find the filebzip2.dll - Extract
bzip2.dllto yourmingw64\binfolder (same folder as above:C:\Program Files\Git\mingw64\bin)
7-zip can be added to gitbash as follows:
- Install 7-zip on windows.
- add 7-zip folder (
C:\Program Files\7-Zip) toPATH
Ongitbashexp:export PATH=$PATH:"C:\Program Files\7-Zip"(temporary)
On Windows, addingPATHlike image below (permanent)

- duplicate a copy of
7z.exeto bezip.exe - reopen
gitbashagain. done!
This way, it works on my laptop.
If you skip step 3. you still can call zip command as 7z instead of zip
Conclusion: Gitbash is running base on windows Path, I think you can run any command that you have added to your Windows PATH.
Compress the git repository using
tar -c -f - foo | gzip >foo.tgz
If you wish to compress the repository without .git directory then run
tar -c --exclude .git -f - foo | gzip >foo.tgz
If your git repository directory contains files that are not versioned and you don't want to include them in the zip file, a simpler alternative is to git clone the repository to a new directory, and compress the whole new directory.