Когда git действительно проверяет целостность цепочки коммитов? - PullRequest
0 голосов
/ 01 июня 2018

Я много раз читал о механизме целостности в git, основанном на хэшах SHA-1 и ссылках на родительские коммиты, что гарантирует отсутствие изменений в зафиксированных данных в репозитории git.

Мой вопросis: Во время каких операций git проверяет, что хэши действительны, то есть соответствуют содержимому коммитов?Проверка выполняется во время пуша или, может быть, пулла?К сожалению, я не нашел никакой информации по этому вопросу.

1 Ответ

0 голосов
/ 02 июня 2018

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

Дополнительная проверка - проверка того, что подпись GPG в теге или фиксации - выполняется только тогда, когдаВы специально запрашиваете это.Вы можете запросить git log проверить такие подписи по умолчанию, используя настройку конфигурации log.showSignature.

Обратите внимание, что целостность любого узла в дереве Меркле зависит от того, доверяете ли вы ранееузлы против второстепенных атак.Если вы используете теги, подписанные GPG, подписи в этих тегах защищают данные каждого тега (в какой степени вы доверяете самой GPG), а затем тег защищает его объект фиксации (в какой бы степени вы не доверяли SHA-1).Объект фиксации, в свою очередь, защищает свое дерево, которое защищает его поддеревья и BLOB-объекты, а хэши BLOB-объектов защищают их содержимое.Поэтому вам следует провести другой анализ, если вас интересуют второстепенные атаки.Если вы просто обеспокоены случайным повреждением данных (как видно на вращающихся носителях и / или не-ECC памяти), вы можете просто использовать хэш SHA-1 напрямую, как это делает Git.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...