Вы можете использовать архив git, так как он принимает команду пути. Итак, в вашем хуке после обновления вы можете сделать что-то вроде
git archive $SHA HTML | (cd dir/where/html/should/go && tar x)
это сначала создает tar-архив из subdir и направляет этот tar-файл в команду tar, чтобы распаковать его в указанном каталоге