ステージングのみ取り消す
変更内容はそのままにステージングのみ取り消すには以下を実行します。
git restore --staged パス
test.txt
を作成して試しに実行してみます。
作成後にgit add test.txt
を実行した状態が下の画像です。
「ステージされている変更」にtest.txt
があります。
ターミナルでコマンドを実行し取り消します。
git restore --staged test.txt
ステージングが取り消されて「変更」にtest.txt
が表示されています。
なお--staged
をつけないで実行するとステージ後に加えた変更を取り消せます。
ステージ後にtest.txt
へ変更を加えます。
ステージ後に変更が加えられたため「ステージされている変更」と「変更」の両方に
test.txt
が表示されています。
--staged
をつけないで実行します。
git restore test.txt
するとステージング後のtest.txt
への変更が取り消されます。
「変更」からtest.txt
の表示が消えました。
変更内容ごと取り消す
変更内容ごとステージを取り消すには以下のように実行します。
git restore --source=HEAD --staged --worktree パス
上記を実行するとステージと変更内容の両方が取り消され、直前のコミットの状態に戻ります。
ステージング前の変更のみ取り消す
ステージング前の変更のみ取り消すには以下のように実行します。
git restore --worktree パス