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.