git archive создает tar-архив, поэтому вам не нужно передавать его выходной tar, на самом деле он не выполняет то, что вы ожидаете. Вы создаете архив tar для ветви stage и передаете его обычной команде tar, которая не использует стандартный ввод, а просто создает свой собственный архив htdocs
в рабочем дереве независимо от git.
Попробуйте:
git archive stage >stage.tar
или, для сжатого архива:
git archive stage | gzip >stage.tar.gz
Чтобы просто заархивировать подпапку htdocs, вы можете сделать:
git archive stage:htdocs | gzip >stage-htdocs.tar.gz
или, чтобы включить имя папки в архив:
git archive --prefix=htdocs/ stage:htdocs | gzip >stage-htdocs.tar.gz
или более просто:
git archive stage htdocs | gzip >stage-htdocs.tar.gz