I’ve been using git for 5 years and this tool always surprises me. I faced a problem this week that seems simple but require a lot effort to execute using only the commands ZIP or TAR:

  • Create a TAR archive of the project excluding all the files and folders included in the gitignore file.

I tried only with the TAR command but my .gitigore was massive. After some research, I found the following example that uses git archive command to compress the project excluding the content of gitignore (this post):

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 *

My case was a bit more specific, my project was allocated in a subfolder that is not a Git repository containing an .gitignore file, but that example was so great and so simple that I give a shoot changing the output file format to TAR:

git archive --format=tar -o archive.tar HEAD

To my surprise, it worked fine, the command created a file called archive.tar with all my project files excluding all files described in the gitignore in a folder that is not a Git repository.

GIT IS GREAT!!!