
ここは、エンジニア未経験の私が Git、GitHub を勉強した内容を備忘録を兼ねて記録していく記事になります。
今回の記事は、『ステージに追加した変更を取り消す( git reset )』を解説してみたいと思います。
ステージに追加した変更を元に戻したい時に使うコマンドとなっています。
つまり、git add した後にその内容が間違っていた、元に戻したいと考えた時に使用します。
過去の記事は、下のリンクよりご確認ください!
今回の記事は、下記の内容を解説いたします。
- git reset コマンドの紹介
- GitBash にて実際に操作する
git reset コマンドの紹介
ステージに追加した内容を取り消す為のコマンドには、3つのオプションが用意させれています。
- git reset HEAD <ファイル名>:ステージに追加したファイルを取り消す。
- git reset HEAD <ディレクトリ名>:ステージに追加したディレクトリを取り消す。
- git reset HEAD . :全変更を取り消す。
※「 . 」は、任意のファイル全てという意味です。
ここでの取り消しは、ステージに追加した内容を取り消すだけですのでワークツリーのファイルには影響を与えません。
つまり、もしワークツリーのファイルの変更も取り消したい場合は、前回の章で解説した git checkout コマンドを使用してファイルの変更を取り消す必要があります。
git reset で起きている事
git reset コマンドを行う事で、Git にて何が行われているのかを解説しておきます。
Git で起きている事は、ステージの状態を最新の(直近の)コミットの状態に上書きしている(同じ状態にしている)という事が行われています。
つまり、git reset コマンドで指定したファイルやディレクトリ(または全変更)をリポジトリにある情報から取得してきて、ステージに反映させるという事を行っています。

前回の git checkout と似たような動きですね!(^_^)/
因みにHEADとは何かと言うと、簡単に説明すると「最新のコミット」の事を指していると思ってください。
今後、ブランチを解説するさいに詳しく紹介したいと思います!!
簡単なイメージ図

GitBash にて実際に操作する
それでは、実際に GitBash にて git reset コマンドを実行していきます。
GitBash を立ち上げたら、前回の記事(⑱ファイルの変更を取り消す)で使用した「 git_training 」のディレクトリに移動してください。

次に自身のエディターを立ち上げて、今まで使用していた index.html ファイルを開き内容の変更を加えていきます。
「Git reset コマンドを実行」と追記して保存してください。
※内容を何度もOKです!

次に GitBash にて「 git status 」と入力してファイルの状況を確認します。

index.html が変更されたという表示が出ているかと思います。
次に GitBash にて「 git diff 」と入力して変更内容を確認してみます。

index.html に入力した内容が表示されているかと思います。
それでは、この内容でステージ追加します。
GitBash にて「 git add . 」と入力してください。
更に状況確認をする為に、「 git status 」と入力して下さい。

「change to be committed」と表示(コミットするべき変更があると表示)されていればOKです。
これを確認できれば、ステージに追加されていると判断できます。
それでは、現在の状態で git reset コマンドで取り消していきたいと思います。
GitBash にて 「 git reset HEAD index.html 」と入力してください。

上記の様な表示になったと思います。
ステージから取り消したいうメッセージです。
それでは、現在の状況を確認してみます。
GitBash にて「 git status 」と入力してください。

上記の表示が出てきたかと思います。
ステージに追加している変更があるという表示になっています。
つまり、ステージに追加した内容が取り消されているという事が分かります。
また、上記の内容からステージの変更は取り消されたが、ワークツリーの内容はそのままの状態であるという事が分かります。
実際に、index.html の内容を確認して見ましょう。
先程使用したエディターから index.html ファイルを開き内容を確認してみてください。

入力した内容がそのままになっている事が確認できればOKです。
最後に、前回の章の復習にもなりますが、ワークツリーの変更内容を取り消しておきます。
GitBash にて「 git checkout — index.html 」と入力してください。
また続けて、状態の確認をする為「 git status 」と入力してください。

上記の表記が出てたらOKです。
何も変更がない状態に戻すことが出来ました。
お疲れ様でした。今回は以上です!!
『ステージに追加した変更を取り消す( git reset )』を解説してみました。

何か不具合等がでましたら、私で分かる事でしたらお答えしますのでコメントや問い合わせよりご連絡ください!
次回の記事は、『直前のコミットを取り消す( git commit — amend )』を解説してみたいと思います。
UPSTART!!(=゚ω゚)ノ
#Git #GitHub #プログラミング #初学者


コメント