LoginSignup
0
1

More than 3 years have passed since last update.

git resetで間違ってコミットしてしまったミスを取り消す

Last updated at Posted at 2021-04-27

下記を参考にさせていただきました。
困ったときの git reset コマンド集

Gitの階層構造

Gitは以下の順番でアップロードされている

ワーキングツリー

インデックス

ローカルリポジトリ

リモートリポジトリ

  • ワーキングツリー : 作業場所
  • インデックス : コミットする変更を準備する場所
  • ローカルリポジトリ : 変更履歴を記録(ローカル環境)
  • リモートリポジトリ : 変更履歴を記録(共有できる)

またgitのコマンドは下記のようにアップロードしていく

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

※インデックスがワークツリーとリポジトリの間にある理由
理由は、以下の2つです。

  • ワークツリー内の必要ないファイルを含めずにコミットを行える。
  • ファイルの一部の変更だけをインデックスに登録してコミットが可能)

git reset

git addgit commitした時にgit resetを使えば取り消すことができます。

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

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

$ git reset --hard HEAD #コミット後の変更を全部消す

$ git reset --mixed HEAD #addを取り消す

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

またHEAD^の「^」を二つにしてHEAD^^にすると2つ前のコミットまで戻ります。

オプションの説明

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

$ git status -sで確認

$ git status -s
0
1
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
0
1