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