Как получить хеш файла из remote репозитория не клонируя репозиторий?
Есть две прекрасные команды:
Первая получает хеш удаленного репозитория
git ls-remote https://{URL} refs/heads/master
Вторая хеш локального файла
git ls-files -s {FILE}
Хочется что-то похожее только для удаленного файла. Без надобности скачивать файл, и тем более клонировать весь репозиторий. Вся же нужная мне информация есть в git, просто нужно как-то ее оттуда достать
Ответы (2 шт):
Никак (вечно вы, гит-бои, хотите странного, и даже не можете рассказать "зачем"): чтобы получить хэш файла, надо иметь возможность выполнить на репе git rev-parse, а это уже более чем локальный доступ
Вот прямо совсем так как вы хотите я не знаю как сделать. Но можно минимизировать количество скачиваемых данных.
Примерно так:
/tmp $ git clone --depth=1 --filter=blob:none --branch main --bare https://github.com/vitest-dev/vitest.git
Cloning into bare repository 'vitest.git'...
remote: Enumerating objects: 197, done.
remote: Counting objects: 100% (197/197), done.
remote: Compressing objects: 100% (144/144), done.
remote: Total 197 (delta 0), reused 129 (delta 0), pack-reused 0
Receiving objects: 100% (197/197), 31.02 KiB | 622.00 KiB/s, done.
/tmp $ cd vitest.git/
/tmp/vitest.git $ git rev-parse HEAD:package.json
7572fc9c0e70e7cc3b2e7e75a8094463a237504d
/tmp/vitest.git $ du -sh .
168K .
З.Ы. Согласен с предыдущим отвечающим — вы хотите странного.