以下の内容はhttps://7rikazhexde-techlog.hatenablog.com/entry/2025/02/18/005354より取得しました。


Gitの指定リポジトリのコミット履歴に記録されたAuthor情報(name,email)を一括置換する方法

経緯

  • Gitを利用する場合、Author情報(name,email)の設定が必要ですが、コミット履歴(コミットログ)を含むAuthor情報を変更したかった。
  • gitコマンドでは、以下コマンドでAuthor情報を変更可能だが、コミット履歴(コミットログ)は変更できない。
# VSCodeなどで編集して変更
git cofing --global(--local)  --edit
    
# コマンド経由で変更
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
  • 調査したところ、コミット履歴(コミットログ)の変更は、git-filter-repoを使用することで対応可能であることがわかりました。

    github.com

対応

  • git configコマンドでAuthor情報を変更し、その後、git filter-repoコマンドを実行する手順で対応しました。
  • ただし、コミット環境ではgit configが異なるケースがあり、複数のnamemailが記録されていたため、mailmap.txtという置換用のデータを指定することで対応しました。
  • 一連の操作はスクリプト化して実行しました。

❗注意事項❗

  • コミット履歴を変更するため、コミットハッシュも変更されます。そのため、フォーク元やフォーク先、プルリクエストなどにも影響を与えますので実行時は注意が必要です。
  • 本記事に記載された内容やコードによって生じたいかなる損害についても責任を負いません。使用する際は自己責任でお願いします。

シェルスクリプト

スクリプト実行後はgit logコマンドを実行、および、リモートリポジトリでコミット履歴を確認し、意図通り置換されていることを確認してください。

もし、git pullなどでエラーになる場合は、git cloneを実行して再取得する必要があるめ注意してください。

以上です。




以上の内容はhttps://7rikazhexde-techlog.hatenablog.com/entry/2025/02/18/005354より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14