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