Как предотвратить изменение автора коммита Git

Я хочу сделать отдельных пользователей для моих коммитов Git. Например, теперь у нас установлено 5 систем с Git. Но при внесении изменений в удаленный репозиторий Git я могу изменить имя автора по умолчанию и адрес электронной почты в окне фиксации.

Как я могу сделать так, чтобы они не могли быть изменены?

2 ответа

Решение

Ваш Git-репозиторий принадлежит вам. Вы можете делать с ней все, что захотите. Никто не может остановить вас, и вы не можете помешать кому-либо делать то, что они хотят, в своих хранилищах.

Короче говоря, нет ничего - в буквальном смысле ничего - вы можете сделать так, чтобы кто-то еще не утверждал, что вы являетесь, или чтобы вы не заявляли, что вы кто-то другой. Это та же проблема, что и в банкомате банка. Чтобы убедиться, что вы - это вы, а Фред - это Фред, и так далее, вы должны выйти за пределы самой проблемы и обратиться к аутентификации. Если кто-то утверждает, что он Фред, как вы узнаете, является ли он Фредом или нет? Особенно, как ты можешь определить, действительно ли он Фред, если ты никогда не встречал его раньше? Это может быть Рави, или Биньямин, или Юрген!

Если у вас с Фредом есть общий секрет или какой-то другой способ решить, верить ли ему, вы можете использовать это. И это все, что вы можете сделать: решить, когда вы получаете какой-то набор коммитов от кого-то, верите ли вы им, когда они говорят вам, что они Фред.

В Git в некоторой степени встроена проверка подписи GPG (он сам не выполняет проверку подписи GPG, он опирается на стороннее программное обеспечение). Вы можете подписывать отдельные коммиты или подписывать аннотированный тег. По ряду веских причин подписание отдельных коммитов обычно дороже, чем пользы. Коммиты Git формируют дерево Merkle, поэтому проверка подписи аннотированного тега обеспечивает разумный уровень уверенности в коммитах, достижимых из этого тега. (Однако степень защиты не намного больше, чем у SHA-1.) См. Также GPG.

Когда вы делаете коммит, вы можете установить автора каждого коммита.

git commit -m "Your commit message" --author="Author Name <author.name@example.com>"

Я включил -m Отметьте для этого примера, но вы можете исключить его и установить сообщение коммита в вашем любимом редакторе.

Это предполагает, что вы используете CLI, если вы используете GUI/IDE, дайте мне знать, и я посмотрю, смогу ли я найти, как использовать настройки автора в этом.

Другие вопросы по тегам