Я изменил автора коммита во время коммита.
Хорошо, но вы не изменили коммитер .
У каждого коммита есть не один, а два", который сделал этот коммит и когда" ставит на нем штамп: author , который можно переопределить с помощью --author
в git commit
и committer , который не имеет очевидного параметра командной строки для его переопределения.
Можно переопределить все шесть частей по отдельности через шесть переменных среды:
GIT_AUTHOR_NAME
устанавливает часть имени автора строки
GIT_AUTHOR_EMAIL
устанавливает адрес электронной почты в строке автора
GIT_AUTHOR_DATE
устанавливает часть даты и времени в строке автора
GIT_COMMITTER_NAME
устанавливает часть имени строки коммиттера
GIT_COMMITTER_EMAIL
устанавливает часть адреса электронной почты для строки коммиттера
GIT_COMMITTER_DATE
устанавливает часть метки даты и времени строки коммиттера
Если вы не перекрываете отдельные детали переменными среды, по умолчанию они:
- author: вы, либо от
--author
, либо от автора в коммите, на который вы указали -c
или -C
.
- коммиттер: вы.
В данном случае «вы» означает:
- настройка от
user.name
, плюс
- настройка от
user.email
, плюс
- текущая дата и время, сообщаемые часами вашего компьютера.
Следовательно, один из способов переопределить все в новом коммите (один без информации, скопированной из некоторого существующего коммита) - это установить ваши user.name
и user.email
, либо через git config
, либо через командную строку:
git -c user.name='A U Thor' -c user.email='thor@example.com' commit
Если вы добавите --author='Someone Else <else@example.com>'
, часть --author
здесь переопределит строку автора, а строка коммиттера будет получена из двух -c
частей (и текущей отметки времени).
Если вы хотите переопределить метку времени коммиттера, единственным механизмом является использование GIT_COMMITTER_DATE
или изменение часов вашего компьютера (либо этого достаточно, и, конечно, переменная окружения проще и безопаснее, поскольку не будет мешать остальным). вашего компьютера).