Как я понимаю, когда Git назначает хэш SHA1 файлу, этот SHA1 уникален для файла на основании его содержимого.
В результате, если файл перемещается из одного хранилища в другое, SHA1 для файла остается тем же, поскольку его содержимое не изменилось.
Как Git вычисляет дайджест SHA1? Это делает это на полном несжатом содержании файла?
Я бы хотел эмулировать назначение SHA1 вне Git.