Git: Если я внесу одно и то же изменение для фиксации метаданных в двух разных системах, получу ли я один и тот же хэш? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть небольшое приложение, над которым я работаю, и у меня есть два разных хранилища: одно на моем компьютере Mac, а другое на моей системе Windows.Прямо сейчас они должны содержать одинаковое содержимое (я только что извлек из репозитория Windows на Mac).

Теперь я бы хотел изменить информацию об авторе на всех коммитах при подготовке к публикации.

Если я сделаю это отдельно для каждого репозитория, будут ли они по-прежнему совместимы, или мне придется выбросить один из них и вытащить из другого

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я только что попробовал это, и получил один и тот же хеш оба раза.

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

0 голосов
/ 04 декабря 2018

Git включает в себя информацию о коммите.Вся эта информация включается в хэш объекта;если что-то из этого отличается, то и хеш.В каждый коммит входит

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

Поэтому, если вы внесете изменения на обеих машинах, если они не внесены в одну и ту же метку времени, хэши будут отличаться, потому что метки времени автора и коммиттера будутотличается.

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