読者です 読者をやめる 読者になる 読者になる

clock-up-blog

go-mi-tech

(Git) プッシュ済み初期コミットのユーザ名を修正する

Git

概要

プッシュ済みコミットのユーザ名を変更したい

経緯

ユーザ名を設定していない git 環境で、コミットとプッシュを行ってしまった。
結果、github 上のリポジトリに意図しない名前が残ってしまった。

ちなみに初期コミットの情報を編集するのはちょっとクセがある。

必要条件

git 1.7.12 以降が必要。

もし古ければ新しいものをインストールしましょう。

# wget https://git-core.googlecode.com/files/git-1.8.3.2.tar.gz
# tar xzvf git-1.8.3.2.tar.gz
# ./configure                (/usr/local/bin/git で良い場合はこれ)
# ./configure --prefix=/usr  (/usr/bin/git にする場合はこれ)
# make
# make install

注意

プッシュ済みのコミット情報変更には git push -f が伴います。
取り扱いにご注意。

コミット編集

--author オプションにユーザ名とメールアドレスを指定します。
今回の例では、

  • ユーザ名: abc
  • メールアドレス: def@ghi.jkl

とします。

$ cd {project_dir}
$ git rebase -i --root
pick 8c475fb hogehoge (ここの pick を edit に変更して保存する)
pick 4869f81 fugafuga
…
$ git commit --amend --author="abc <def@ghi.jkl>"
hogehoge (コメントの編集も必要ならこの行を編集して保存。必要なければそのまま保存)
…
$ git rebase --continue
$ git push -f

ユーザ名とメールアドレスの書き換え完了。
ブラウザからgithubのコミットログを確認しましょう。
ユーザ名とメールアドレスが変わっているはずです。

});