TweetGitのコミットログから、特定のCommitを書き換えたいという場合の備忘録。コミットの履歴を改変する危険な操作なので、よく分からない人は使わないこと。目的Gitのコミットログに含まれている名前やメールアドレスを書き換えたくなる場合がある。具体的にありそうなのは以下のようなケース。アカウントを間違えてcommitしてしまったGitHubに登録しているメールアドレスを変更したけど、過去のコミットログに含まれているアドレスを変えたいコミットのログに公開したくない名前やメールアドレスが含まれているため、書き換えたいなお、通常GitのコミットログにはAuthorが表示されるが、Committerも記録されている。1したがって、書き換える際にはこれらを双方とも書き換える必要がある。filter-branchを使用する。以下のように実行することで、<commit_id>のコミットのみを対象に、名前やメールアドレスを書き換えることができる。GIT_COMMITTER_EMAIL="fuga@example.com"fi'なお、シングルクォートの中身はシェルスクリプトになっている。すべてのコミットを対象に書き換える場合は、if文を書かずにexport〜の箇所だけを羅列すればよい。2回以上filter-branchを実行する場合は、forceオプション-fをつけて実行する必要があるので注意。補足AuthorやCommitterは以下のコマンドで確認できる。--pretty=full既にリポジトリに存在する内容を書き換えた場合は、push時にfoceオプションを指定して以下のように実行する必要がある。これは危険を伴うため、よく分からない場合は絶対に使わないこと。