mzgkworks

iOSを中心にプログラミング関係について書く

【Git】変更の取り消し(全てPush前)

Gitで変更またはコミットを取り消す時の方法。
Push前の状態で行うこと

環境

  • Git 2.9.0

ステージング前

  • $ git add 前に実施し、ワーキングツリーの変更をなかったことにする
# 特定のファイルのみ
$ git checkout -- ファイル名

# 特定のファイルのみ指定したコミットの状態でステージに
$ git checkout コミットID ファイル名

# 全て
$ git checkout .

ステージングの取り消し

  • $ git add でステージングしたファイルをアンステージする
# 指定したファイルをアンステージする
$ git reset HEAD ファイル名

直前のコミットの修正

  • コミットメッセージを修正したい
  • コミットした後に同じファイルを修正・変更した
  • コミットすべきファイルが漏れていた
# メッセージを修正したい
$ git commit --amend

# ファイル漏れ・変更漏れ
$ git add 漏れ・変更ファイル
$ git commit --amend

コミット自体をなくす

  • HEAD~で指定しているところは、戻したい場所のコミットIDを表す
# HEADだけをコミット前に戻す
$ git reset --soft HEAD~

# HEADとインデックスをコミット前に戻す
$ git reset HEAD~

# HEAD,インデックス,ワーキングツリーをコミット前に戻す
$ git reset --hard HEAD~