Git

【Git】git addコマンドを取り消す方法

本記事ではgit addコマンドを取り消すことができる、git resetコマンドについて解説しています。

先輩くん
先輩くん
本記事ではGitを使用します。
Gitのインストールをしていない人はこちらの記事を参考にしてください!

Gitの学習におすすめ参考書
改訂2版 わかばちゃんと学ぶ Git使い方入門

本書情報
著者湊川 あい
発売日2021/6/12
ページ数280ページ
Kindle版
レビュー
(Amazon)
(84件)

参考書が苦手な人はUdemyの動画がおすすめ
もう怖くないGit!チーム開発で必要なGitを完全マスター

動画情報
作成者山浦 清透
学習時間5.5時間
受講者数40,161人
レビュー (7,512件)
動画の詳細はこちら

ステージした変更を取り消す

git addコマンドで、誤ってステージするつもりのないファイルやディレクトリをアップしてしまった場合に、git resetコマンドを使うことでステージした変更を取り消すことができます。

git resetコマンドは、ステージされた変更を取り消すだけなのでワークツリー(自分のローカル環境)に影響を与えることはありません。

後輩ちゃん
後輩ちゃん
Gitはどのようにしてステージされた変更を取り消しているんですか?
先輩くん
先輩くん
リポジトリから最新のコミット情報を取得し、ステージの内容を上書きしているよ!

ステージしたファイルを取り消す

ステージしたファイルを取り消すには、HEADの後に「ファイル名」を指定します。
git reset HEAD filename

ステージしたディレクトリを取り消す

ステージしたディレクトリを取り消すには、HEADの後に「ディレクトリ名」を指定します。
git reset HEAD directoryname

ステージした全てを取り消す

ステージした全てを取り消すには、HEAD「.」を指定します。
git reset HEAD .

【実践】ステージされた変更を取り消す流れ

それでは実際にステージされた変更を取り消す流れを紹介します。
※変更を取り消すファイル(test.txt)がリポジトリにアップされていることを前提として解説していきます。

まず始めに対象となるtest.txtをステージさせるため、ファイルに変更(テキストの追加や削除)をします。
次に、git statusコマンドで現在の状況を確認します。
git status

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   test.txt

no changes added to commit (use "git add" and/or "git commit -a")
「Changes not staged for commit:」とは、ステージされていないファイルがあるということを意味しています。
ステージすることができるファイルに「test.txt」が表示されているのが確認できます。
git addコマンドでステージにファイルを追加します。
git add test.txt
再度、git statusコマンドで現在の状況を確認してみましょう。
git status

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   test.txt

「Changes to be committed:」とは、ステージに追加されているファイルがまだコミットされていないことを意味しています。
コミットしていないファイルに「test.txt」が表示されているのが確認できます。

ステージにファイルを追加するところまで出来たので、本題のステージされたファイルの変更を取り消しましょう。
git reset HEAD test.txt

Unstaged changes after reset:
M	test.txt
再度、git statusコマンドで現在の状況を確認してみると、先程まではステージされていたファイルが取り消されていることが確認できます。
git status

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   test.txt

no changes added to commit (use "git add" and/or "git commit -a")

ステージさせることができるファイルとしてまだ認識がされているため、変更自体が不要の理由であれば「git checkout — test.txt」コマンドを実行して、ファイルの変更を取り消してワークツリーをクリーンな状態にしましょう。

以上が、ステージした変更を取り消す一連の流れになります。

参考記事

Git公式ドキュメント

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村