閲覧が無い故に良いメモ帳と化したプログラマーブログ

主にphp関連の技術ブログ。閲覧が無い為、マークダウンが使える良いメモ帳と化している。誤ってアカウントパスワードを書いても大丈夫だ。なぜなら誰も閲覧しないからな。安心のブログシステムである。

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