I need to create an archive of my Git project, ignoring and leaving out files specified by .gitignore
, but including the actual .git
repository folder. Simply running git archive master
leaves out the .git
folder.
Is there a way to make git archive
include the .git
folder but still ignore files specified by .gitignore
?
Since git archive
just produces a tar archive you can work on that file with tar
directly.
$ git archive HEAD > tar.tar
$ tar -rf tar.tar .git
tar's -r
option appends the files given to the archive being worked on (specified after -f
). Check tar's man page for the intimidating list of features tar has.
Looks like doing something like
# copy over all project files except for those ignored
git clone /path/to/repository /path/to/output
# create a tar.gz archive of the project location
tar czvf projectExport.tar.gz /path/to/output
# remove the cloned directory
rm -fr /path/to/output
gets the job done. It's not the most beautiful solution in the world, but it looks like it works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With