ローカルリポジトリでの操作の取り消し git checkoutとgit reset

ファイルの変更を取り消す(直前のコミットの状態に戻る) git checkout

  1. ファイルを変更
  2. git statusで確認するとworking treeにmodified(変更済み) ファイルが出る
  3. git checkoutコマンドでワークツリーの変更を取り消す(ファイルは直前のコミットの状態に戻る)
$ git checkout -- Git_MEMO.md

git checkout コマンドで取り消しできないケース

新規でファイル作成した時やファイル名を変更した時はgit checkoutが使えないので、手動でファイル削除します。

ステージングエリアへの登録を取り消す git reset HEAD ファイル名(ファイルの変更はしない)

ファイル変更し、ファイルをステージングエリアに登録 ステージングエリアへの登録を取り消す

$ git reset HEAD Git_MEMO.md 
Unstaged changes after reset: //resetによってunstagedされた
M   Git_MEMO.md

HEADは最後にコミットした状態を意味しています。

結論

ファイルの内容も変更前に戻したい時はgit checkoutコマンド ファイルの内容はそのままでステージングだけ戻したい時はgit reset HEADコマンド