Git архив из определенного хэша с удаленного

Я пытаюсь получить один каталог из одного удаленного репозитория, но я хочу получить этот файл только из определенного хэша. Если я использую git архив с HEAD, все в порядке, но когда я пытаюсь использовать определенный хэш:

git archive -v --format tar --remote = ssh://....myrepo.git agithash afile > output.tgz

Но я получаю

fatal: sent error to the client: git upload-archive: archiver died with error
remote: fatal: no such ref: 9a9c309
remote: git upload-archive: archiver died with error

Итак, я прочитал, что могу использовать другой файл upload-archive следующим образом:

git archive -v --format tar --remote = ssh:..... myrepo.git --exec = "/usr/local/bin/ git upload-archive" ahash afile > output.tgz

Это тоже не сработало. Я предполагаю, потому что BitBucket не поддерживает его как https://confluence.atlassian.com/bitbucketserverkb/git-upload-archive-archiver-died-with-error-779171761.html

Итак, я задаюсь вопросом: есть ли еще один простой способ сделать это?

Ответ 1

Если эта фиксация ссылается на ветку, вы можете сделать неглубокий клон непосредственно при правильной фиксации:

git clone <url> --depth=1 --branch <branch_name> -- <folder_name>

И затем сделайте архив.

Но вы не можете напрямую получить или клонировать конкретный коммит по соображениям безопасности.