Я думаю, например, о следующей информации:
Если да :
Что кто-нибудь получит от этого?
Можно подписывать коммиты с помощью gpg





Вы можете относительно легко изменить детали фиксации: Как добавить измененный файл в более старую (не последнюю) фиксацию в Git
Однако, поскольку хэш SHA-1 каждого коммита включает хэш родительского коммита, это изменяет хэши всех последующих коммитов.
Are there ways to authenticate a git repo's content or make it authenticatable?
Вы можете подписывать коммиты с помощью GPG, но это только идентифицирует автора. Если у автора есть злой умысел, это подводит нас ко второму вопросу:
How to know if a git history was modified?
Это зависит от того, как вы определяете «модифицированный». Насколько мне известно, нет истории того, на что master указывал в прошлом, поэтому вы не можете легко отличить обычную ветвь от «модифицированной» истории. Возможно, вам удастся проверить rev-log на предмет чего-нибудь необычного.
История всех систем контроля версий (clearcase, subversion, CVS, git) может быть изменена, если у вас есть доступ к истории. При распространении Git у вас есть копия (то есть вилка) всей истории. Вы можете изменить историю (см. Ответ @mrks^1) только своей собственной вилки.
Если вы хотите вернуть свою копию, чтобы отправить изменения в другую вилку, с помощью --force вы можете, таким образом, перезаписать целевую историю:
Обычно это делается в организациях, чтобы избежать перезаписи истории другими пользователями. И обычно только ветка, связанная с основным путем в истории производства (например, ветка = prod, production, master и т. д.). Это будет частью определения рабочего процесса.
Многие организации ^2, у которых есть зеркала github, имеют эту настройку, например, чтобы убедиться, что сам Github (намеренно или нет) перезаписывает историю.
Все поля, которые вы упомянули, являются частью SHA-1, который используется для идентификации фиксации. Таким образом, невозможно изменить эти поля без создания нового коммита. А новая фиксация означает, что никакая реализация git не примет перезаписанную фиксацию в качестве замены исходной, если вы не заставите ее сделать это принудительно.
Обычно, когда у вас есть идентификатор фиксации git, это криптографический хэш всей истории разработки до этого момента, а также всей информации об авторстве, которая включает в себя. Любое изменение этих данных будет обнаружено.
Если вам нужна дополнительная безопасность, вы можете подписывать коммиты с помощью ключей PGP, используя git commit -S.
В чем разница между PGP и GPG?
@evolutionxbox GPG - это, по сути, повторная реализация PGP GNU. Криптография совместима, но одна часть программного обеспечения является FOSS, а другая - проприетарной. GPG интегрирован в довольно много программного обеспечения GNU / Linux, такого как git, но его формат данных по-прежнему тот, который определил PGP.
Таким способом можно взломать Git, но это не очень просто. Поведение фиксации Git настроено так, чтобы этого не произошло.