Gitコミットの作者を修正する
原文は Ellie Huxtable により に公開されました。 このブログを購読する
コミット時にうっかり間違ったメールアドレスを使ってしまうことはよくある。用途ごとに使い分けているメールアドレスがいくつかあるので、正しく設定しておくことが大事だ :)
直前のコミットの作者を修正する
これは簡単で手軽だ!
git commit --amend --author="Example Name <[email protected]>"インタラクティブリベースを使う
- 任意のベースに対して
git rebase -iを実行する - 変更したいコミットを
pickではなくeditでマークする git commit --amend --author="Example Name <[email protected]>"を実行し、続けてgit rebase --continueを実行する
filter-branchを使う
全体をフィルタリングする方法だ!ただし注意が必要で、filter-branchは使い方を誤ると問題を起こす可能性がある
git filter-branch -f --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ];
then
GIT_AUTHOR_NAME="New Name";
GIT_AUTHOR_EMAIL="[email protected]";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEADfilter-repoを使う
git-filter-repoについては以前split git repoで紹介したが、ここでも役立つ。filter-branchよりおすすめだが、Gitの標準インストールには含まれていない。
以下のコマンドでインストールする
curl "https://raw.githubusercontent.com/newren/git-filter-repo/main/git-filter-repo" -o ~/.local/bin/git-filter-pathその後、以下のいずれかを実行する
mailmapを使う場合
mailmapで古いアドレスから新しいアドレスへのマッピングを設定済みなら、以下を実行すればいい
git filter-repo --use-mailmapmailmapを使わない場合
そうでない場合は、以下がうまくいく
git filter-repo --email-callback '
return email if email != b"[email protected]" else b"[email protected]"
'記事をランダムに読む
コメント
ログインしてコメントする