LoginSignup
185
159

More than 5 years have passed since last update.

【Git】ローカルの修正を前回のcommitまで戻す方法

Last updated at Posted at 2016-03-28

やりたいこと(想定シーン)

修正してaddしたり、または未addだったりの状態で、やっぱり修正必要なかったなぁって場合に前のcommit状態に戻したい。

まとめて戻す方法

未add(ワーキングツリーのみ存在)、add済み(ワーキングツリー&インデックス存在)に関わらずこれですべて戻すことができる。

git reset --hard HEAD
解説

--hardオプションでインデックス、ワーキングツリー全てを戻す。
HEADは最新のcommit idのエイリアス。前回のcommitまで戻したいのだから、HEADを指定する。

※もちろんUntrackedは対象外。Untrackedを消したい場合は、コメントで教えてもらった「git clean -f」を使う。もしくは、「git add .」して一旦管理下に入れて上記を行う。

ファイル単位で戻す方法

--hardオプションはファイルを指定できないため。

対象がadd済みファイル(インデックス&ワーキングツリーに存在)

まずインデックスを戻して、次にワーキングツリーを戻す。

git reset HEAD <file>
git checkout <file>

対象が未addファイル(ワーキングツリーのみに存在)

ワーキングツリーを戻す。

git checkout <file>

参考

より詳細に知るにはこちらを見ることおすすめ
[git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法

185
159
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
185
159