I\'m in the process of setting up a deployment script. The basic process is:
Here it is as a few-liner:
prefix=$(basename "$(pwd -P)") { git ls-files git submodule foreach --recursive --quiet \ 'git ls-files --with-tree="$sha1" | sed "s#^#$path/#"' } | sed "s#^#$prefix/#" | xargs tar -c -C.. -f "$prefix.tar.xz" --