LoginSignup
131
130

More than 3 years have passed since last update.

困ったときの git reset コマンド集

Last updated at Posted at 2018-10-12

困ったときの git reset コマンド集

Introduction

Gitで間違ってadd、commitしたときに緊急回避するためのコマンド集.

Gitがリモート上がるまで

Gitは下記の順番でリモートにアップロードされます。

ワーキングツリー → インデックス → ローカルリポジトリ → リモートリポジトリ
  • ワーキングツリー : 最新のファイル状態
  • インデックス : コミットするためのファイル状態
  • ローカルリポジトリ : ファイルの変更履歴を記録(ローカル環境)
  • リモートリポジトリ : ファイルの変更履歴を記録(共有できる)

下記の用にそれぞれに変更履歴を反映させていきます。

  • git add : 「ワーキングツリー → インデックス」
  • git commit : 「インデックス → ローカルリポジトリ」
  • git push : 「ローカルリポジトリ → リモートリポジトリ」

resetコマンド

間違えて"git add"、"git commit"をした場合、"git reset"を行うことでそれらの操作をなかったことにできます。

  • オプション

    • reset --hard :add、commit、ワーキングツリーの取り消し
    • reset --mixed:commitとaddの取り消し。
    • reset --soft :commitのみ取り消し。
  • HEAD

    • 最新のコミットの状態を表している
    • @でも表現ができる : HEAD = @
    • ^ や ~ をつけることで直前のコミットを表すことができる : HEAD^ 、 HEAD~
  • コマンド集


直前のコミットをなかったことにする
git reset --soft HEAD^

直前のコミットを取り消し
git reset --hard HEAD^

コミット後の変更を全部消したい
git reset --hard HEAD

addを取り消したい
git reset --mixed HEAD

git resetをなかったことにする
git reset --hard ORIG_HEAD

Conclusion

やっちまったときはgit resetで逃げましょう!!^^
でもやりすぎるとわけが分からなくなるので注意です!!

参考文献

131
130
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
131
130