Git でローカルの変更を以前の状態に戻す
Ashok Chapagai
2023年1月30日
マリオ
にタスクが割り当てられ、それを完了しようとしたとしましょう。しかし、残念ながら、クライアントは要件を変更し、マリオ
に以前に割り当てられたタスクの作業を停止するように依頼しました。このジレンマの完璧な解決策は何でしょうか。
この記事では、Git の以前の状態へのローカルな変更を確認する方法を学習します。
Git のステージングされていないローカル変更を元に戻す
通常、ファイルをステージにプッシュするコマンド git add
を使用していない場合は、以下の手順に従って前の状態に簡単に移動できます。
-
git status
でファイルのステータスを確認します。$ git status On branch dev Your branch is up to date with 'origin/dev'. 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: frontend/src/index.tsx modified: frontend/src/common/components/index.tsx modified: frontend/src/common/components/index.css
-
ステータスがわかっているので、好みに応じて以下のオプションを使用できます。
- ローカルの変更を上書きします
git checkout -- <file>
- ローカルの変更を保存して、プロジェクトの後半で使用できるようにします。
git stash
- ファイルに加えられたすべての変更を破棄します
git reset --hard
Git でステージングされたローカルの変更を戻す
git add
コマンドを使用してファイルを追加した場合は、以下の手順に従ってファイルを以前の状態に戻すことができます。
-
git status
を使用して、追加されたファイルが利用可能かどうかを確認します。 -
ステージングされたファイルを確認したので、元に戻すファイルを選択し、状況に応じて次のコマンドを使用できます。
- ファイルへの変更を保持しますが、ステージングしたままにしないでください。
git restore --staged <file_name_with.path>
- 変更を保持しながら、すべてのファイルのステージングを解除します。
git reset
- すべての変更を破棄し、後で使用できるように保存します。
git stash
注:
git stash pop
を使用してgit stash
の効果を元に戻し、git stash list
を使用して使用可能な stash を一覧表示します。- すべてを破棄します
git reset --hard
著者: Ashok Chapagai