weblog of key_amb

主にIT関連の技術メモ

gitのコミットログを汚さない方法

gitでは不都合な歴史を削除することができる。
つまり、不要なコミットログを消したり、最後のコミットに修正を追加するということもできる。
これらの機能を利用して、共有リポジトリにpushする前に、コミットログをきれいにしておきましょう。

最後のコミットに追加 or 最後のコミットを修正

    • amendオプションをつけてgit commitするだけ。
git commit --amend

または、「git reset --soft HEAD^」で、直前のコミットを取り消して、まとめてコミットするという手もある。

git commit --amend --author="Your Name <your-email-address>"

で、コミッターを修正することもできる。

古いコミットログを削除する

git rebase -i ブランチ名で過去のコミットを編集できる。

git rebase -i HEAD~4

と打てば、直前の4つのコミットを編集できる。
例えば、以下の様に表示される。

pick bf953b8 last commit
pick d08f543 oops!
pick 8adbebc second commit
pick 9e87ef2 first commit

ここで、pickをsquashに変えればそのコミットはその直前のコミットにねじ込まれる。
もちろん、ワーキングツリーのファイルはそのまま。