Критерии Git для сравнения коммитов, зачем включать коммиттера?

Git использует хэш SHA1 для идентификации объекта фиксации, и согласно Git Book объект фиксации содержит:

  • дерево
  • указатель на более старый commit (parent)
  • отметка времени
  • имя автора
  • имя коммиттера
  • ...

Что меня удивляет, так это то, что нужны оба автор и коммитер в объекте фиксации, действительно, это быстро становится проблемой при слиянии фиксации с другим идентичным репозиторием, поскольку хеш фиксации может измениться!

Моя точка зрения иллюстрируется GitHub в вашем Fork В очереди вы даже можете найти свою собственную фиксацию после того, как ваши изменения будут объединены с исходным проектом! Обычно это «метаконфликт» , потому что кто бы ни инициировал изменение, тот же самый, и кто совершает коммит, не должен изменять характер коммита ...

Итак, зачем это нужно? Это неправильное использование автора и коммитера? Я понимаю необходимость обоих , я не понимаю , почему оба должны быть включены в хеш фиксации , а почему не где-то еще?

Можно не согласиться что одно и то же изменение, совершенное в разных репозиториях, должно быть идентифицировано как одно и то же, поэтому исключить имя коммитера из хеша?

5
задан MP0 19 May 2011 в 08:12
поделиться