gitでcommitのメールアドレスを変更する

コミットログのメールアドレスを書き換えようと思って,git filter-branch --commit-filterしたらターミナルが落ちた.

環境は以下のとおり.

  • OSX 10.7.5
  • git version 1.8.3.4
  • iTerm2 Build 1.0.0.20131124
  • zsh 5.0.2 (x86_64-apple-darwin11.4.2)

発生事象

コミットログのメールアドレスを書き変えようとおもって, 以下のコマンドを実行しようとしたが,GIT_AUTHOR_EMAIL="bar@example.com";まで入力したところで, ターミナルが落ちてしまう.何度やっても.

$ git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "foo@example.com" ];
        then
                GIT_AUTHOR_EMAIL="bar@example.com";

対策

使ってるシェルのせいかなーと思って,bashで試したら,何事も無く走った. bashで実行しましよう. あと,一応メールアドレスを書き換えるgitサブコマンドを書いたのでよろしかったらどうぞ.

こういうのって,gistでいいのかな?リポジトリ作ったほうがいいのかな?誰か教えてください.

git-chmail

コミットのメールアドレスを一括変更するgitサブコマンドです.

インストール方法

パスの通ってる場所にDLして,実行権限を与えます.

curl -L 'https://gist.github.com/ringohub/7867738/raw/5f671e7f4b7b05bca7d232346077549152e314ad/git-chmail' -o git-chmail
chmod 755 git-chmail

使い方

old@example.comのメールアドレスをnew@example.comに変更する例です.

git chmail 'old@example.com’ ’new@example.com'

参考