git-archive a subdirectory --

wildabeast picture wildabeast · Jun 27, 2013 · Viewed 14.3k times · Source

I'm using git-archive to archive a subdirectory in a git repo, like so:

git archive -o ../subarchive.zip HEAD subdir/*

However the resulting archive maintains the subdir/ directory structure, i.e. the contents are:

subdir/
   whatever.js
   morestuff.js

When I actually want whatever.js and morestuff.js at the root of the archive.

How do? Thanks.

Answer

janos picture janos · Jun 27, 2013

You can do that like this:

git archive -o ../subarchive.zip HEAD:subdir

By the way, an easy way to play with the command and see what it will generate is if you use it in this form:

git archive --format=tar HEAD:subdir | tar t
git archive --format=tar HEAD subdir | tar t
# ... and so on ...

Once you see what you're looking for, you can change the format and use the -o flag to actually create the archive.