Будет проблематично c, если все отправят в одну и ту же ветку, потому что переписывание вашей локальной истории с правильным именем пользователя / адресом электронной почты будет означать git push --force
, что означает, что SHA1 из коммитов изменится на стороне удаленного хранилища.
Если у вас есть pu sh в отдельной ветке, вы можете без каких-либо последствий заставить pu sh, кроме того, чтобы предупредить профессора, и убедитесь, что сценарий рассмотрит вашу недавно написанную ветвь.
Проверьте, действительно ли нет электронной почты, связанной с вашим последним коммитом с :
git log --format='%ae' HEAD
OP ddipi подтвердите в комментариях :
Я использовал команду git log --format='%ae' HEAD
, чтобы выяснить, действительно ли я использовал свой старый адрес электронной почты.
Я добавил его в свою учетную запись Github, и проблема была решена.
Для сброса пользователя / электронной почты при фиксации я бы рекомендовал в эти дни использовать новый инструмент git filter-repo
, который заменяет BFG и git filter-branch
.
См. руководство пользователя .
Чтобы изменить имя пользователя и электронные письма о коммитах, вы можете создать файл почтовой карты в формате, принятом git-shortlog
.
Например, если у вас есть файл с именем my-mailmap, вы можете запустить
git filter-repo --mailmap my-mailmap
, и если текущее содержимое этого файла выглядит следующим образом (если указанный файл почтовой карты управляется версией, исторические версии файла игнорируются):
Correct Name <correct@email.com> <old@email.com>
тогда мы можем обновить имя пользователя и / или адреса электронной почты на основе указанного сопоставления.
См. git shortlog
раздел "Автор картографирования" для точного синтаксиса файла почтовой карты.
Или с обратными вызовами :
git-filter-repo --name-callback 'return name.replace(b"OldName", b"NewName")' \
--email-callback 'return email.replace(b"old@email.com", b"new@email.com")'