複数のコミットの作成者とコミッターの名前/メールアドレスを変更するにはどうすればよいですか? 質問する

複数のコミットの作成者とコミッターの名前/メールアドレスを変更するにはどうすればよいですか? 質問する

コミットの範囲の作成者を変更するにはどうすればよいですか?

ベストアンサー1

注意: この回答は SHA1 を変更するため、すでにプッシュされているブランチで使用する場合は注意してください。名前のスペルを修正したり、古いメールを更新したりしたいだけの場合は、Git を使用すると、履歴を書き換えずにこれを実行できます.mailmap私の他の答え

リベースを使用する

まず、まだ行っていない場合は、git-config で名前を修正する必要があります。

git config --global user.name "New Author Name"
git config --global user.email "<[email protected]>"

これはオプションですが、必要であればコミッター名もリセットされます。

リベースを使用してコミットの範囲のメタデータを書き換えるには、次のようにします。

git rebase -r <some commit before all of your bad commits> \
    --exec 'git commit --amend --no-edit --reset-author'

--execgit commit各コミットが書き換えられるたびにステップが実行されます(git commit && git rebase --continue繰り返し実行した場合と同様)。

--root最初のコミット (「ルート」コミットとも呼ばれます) も変更する場合は、リベース呼び出しに追加する必要があります。

user.nameこれにより、 /構成のコミッターと作成者の両方が変更されますuser.email。その構成を変更したくない場合は、の代わりにを使用できます。これを行うと、コミッターは更新されず、作成者のみ更新されることに注意してください。--author "New Author Name <[email protected]>"--reset-author

単一コミット

最新のコミットを変更するだけであれば、リベースは必要ありません。コミットを修正するだけです。

git commit --amend --no-edit --reset-author

プロジェクトの全履歴

git rebase -r --root --exec "git commit --amend --no-edit --reset-author"

古い Git クライアントの場合 (2020 年 7 月以前)

-r,--rebase-mergesが存在しない可能性があります。代わりに を使用できます-p。 には-p重大な問題があり、現在は非推奨となっていることに注意してください。

おすすめ記事