Подтвердить что ты не робот

Что означает UserA с UserB 13 дней назад в github?

Мне интересно узнать, какой из двух пользователей внес изменения файла, когда github перечисляет оба. Однако запись git содержит только UserA.

4b9b3361

Ответ 1

UserA - тот, кто действительно внес изменения. UserB - тот, кто внес эти изменения в эту ветку. Если UserA фиксирует свои изменения в ветке1, приходит UserB, совершает пару изменений в branch2, переставляет ветвь 1 с помощью ветки2. Теперь самая верхняя фиксация в ветке 1 покажет, что UserA совершил эти изменения с помощью UserB.

Изменить: Это происходит главным образом во время переустановки и сбора вишни, поскольку авторы и коммиттеры могут быть разными в этих процессах.

Ответ 2

Ответ

@venkatKA точный и описательный, но я подумал, что добавлю несколько деталей.

git cat-file -p HEAD может использоваться для печати информации о фиксации

tree d85ed3c3a055c95445898a5119ea0a532459fdsf
parent 0b6ed951b2c04b4134c91ffa053b4330edfdffc1
author AuthA <[email protected]> 1487356245 +0000
committer AutbB <[email protected]> 1487356245 +0000

Если вы хотите исправить исторические коммиттеры (например, если вы меняете свою личность), вы можете использовать:

git filter-branch -f --tree-filter "GIT_COMMITTER_NAME='New Author'; GIT_COMMITTER_EMAIL='New Author'" 

Стандартные комментарии об ошибках, которые ломают историю и почему ревизионизм - плохая идея.

Ответ 3

Другой возможной причиной этого является использование переменных $GIT_AUTHOR_NAME и $GIT_AUTHOR_EMAIL env.

Когда эти переменные установлены, они переопределяют часть автора каждого последующего коммита независимо от того, какие значения конфигурации user.name и user.email установлены локально. В этом случае, когда вы нажимаете git cat-file -p HEAD, автор показывает значение $GIT_AUTHOR_NAME, а коммиттер показывает значение локальной конфигурации user.name.

Поэтому вам нужно удалить строки, которые экспортируют эти переменные в .bashrc или .zshrc, или если вы хотите сохранить эти строки, но просто не хотите, чтобы это произошло, вставьте unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL перед запуском git commit.