Gitの使い方(コミットの取り消し)
やりたいこと
Gitの取り消し方法を纏めた。 取り消しパターンは下記で十分だと思う。
- 変更の取り消し
- addの取り消し
- commit/pushの取り消し
コマンド紹介
1. 変更の取り消し
$ git checkout .
上記では新規追加ファイルを「変更」として見ていない為、ファイル追加含めた変更を取り消すには下記コマンドを実行する。
$ git clean -df .
2. addの取り消し
$ git reset HEAD .
addだけが取り消され、変更内容が取り消される訳ではないので注意すること。
3-1. commitの取り消し
$ git reset --hard [commit id]
git log
でcommit idを調べてから行うこと。
コミットを取り消しかつ変更内容もろとも削除する場合 --hard
コミット取り消しのみで、手元に変更内容は残す --soft
また直前のコミットを取り消すgit reset --hard HEAD^
も便利。
3-2. pushの取り消し
$ git revert [commit id] $ git push
こちらは取り消しcommitをPushするというイメージ。 参考までに複数のpushを取り消したい場合は下記参照。-nで取り消しcommitを一旦保留し一括でcommit → pushすればよい。
$ git revert -n [commit id 1] $ git revert -n [commit id 2] ... $ git commit $ git push