Как изменить автора коммита для одного конкретного коммита? - PullRequest
1762 голосов
/ 15 июня 2010

Я хочу сменить автора одного конкретного коммита в истории. Это не последний коммит.

Я знаю об этом вопросе - Как изменить автора коммита в git?

Но я думаю о чем-то, где я идентифицирую коммит по хешу или короткому хешу.

Ответы [ 13 ]

1 голос
/ 17 мая 2019

Существует также ленивый подход к этой проблеме, особенно если у вас есть более одного коммита, который вы хотите изменить. В моем случае у меня была новая ветка с несколькими коммитами с неверным автором, так что мне помогло:

Перейти к исходной ветке:

git checkout develop

Создать из него новую ветку:

git checkout -b myFeature develop 

Объединить его без информации о коммите как один коммит:

git merge --no-commit --squash branchWrongAuthor

Возможно, вы также захотите внести изменения:

git stage .

Измените имя автора и внесите изменения:

git commit --amend --author "New Author Name <New Author Email>" -m "new feature added"

И это все, вы можете нажать изменения.

git push

После этого вы можете удалить ветку с неверным автором.

1 голос
/ 26 марта 2019

Если вам нужно изменить коммит AUTHOR THE LAST, и никто не использует ваш репозиторий, вы можете отменить ваш последний коммит с помощью:

git push -f origin last_commit_hash:branch_name 

изменить имя автора вашего коммита с помощью:

git commit --amend --author "type new author here"

Выйдите из редактора, который открывается, и снова нажмите ваш код:

git push
0 голосов
/ 15 апреля 2019

В дополнение к ответу Eugen Konkov , чтобы начать с корневого коммита, используйте флаг --root. Флаг --no-edit тоже полезен

git rebase --root --exec "git commit --amend --author='name <email>' --no-edit"
...