本記事の内容
最新commit内容から修正をした内容をリセットして
修正をする前の状態に戻りたいときのコマンドについて
どのようなケースで使うか
図のような状況とします。
- push対象のbranch(main)から新規ブランチ(new_branch)を作成
- そのnew_branchの中で1の内容を修正や新規ファイルを追加をして2の内容にする
- 修正や新規ファイルを追加するにつれ、エラーなどにより1の内容に戻したくなった
追跡中ファイルの更新内容をリセットする & 追跡されていないファイルの変更内容をリセットする
下記の手順で1の状態に戻れます。
追跡中のファイルの更新内容のリセット
追跡中のファイルの更新内容をリセットします
git checkout -- .
ファイル単位の指定もできます
例えばconfig/routes.rb
のみ更新内容をリセットしたい場合
(例) git checkout -- config/routes.rb
追跡されていないファイルの変更内容をリセットする
新規追加したファイルはステージングしていない場合はuntrackedとして扱われているのでgit clean
で変更内容を削除します
git clean -df
※ mainブランチに戻ればいいのではないか?と思ったのですが
untracked(追跡されていない)のファイルの内容がmainブランチに移った時にも反映されたまま のため、1の状態に戻りきりませんでした