1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

トラブった時に使えるgit reset コマンド集

Posted at

この記事の背景

Gitでトラブった時に助けてくれるgit restのコマンド集を集めてみました。

git reset --soft (commit)

直前のコミットをなかったことにして、変更内容をインデックスに残しておく時に使います。

git reset --soft HEAD~1

git reset --mixed (commit)(デフォルト)

コミットとインデックスをリセットし、作業ツリーはそのままで、
指定したコミットまで戻し、変更をインデックスから外しつつ作業ツリーには残す時に使います。

git reset --mixed HEAD~1

--mixedはデフォルトなので、次のように省略しても同じ挙動です。

git reset --hard (commit)

コミット、インデックス、作業ツリー全てを指定したコミットの状態にリセットします。
指定したコミットまで完全に戻し、以降の変更をすべて破棄する時に使います。

注意‼️ 作業ツリー内の変更が失われるため、注意が必要です。

git reset --hard HEAD~1

git reset --merge (commit)

マージ時のコンフリクト解消中に、マージに関わるファイルのみリセットします。
マージに失敗した場合に、マージに関連するファイルのみをリセットしたいときに使います。

git reset --merge

git reset --keep (commit)

指定したコミットに戻し、作業ツリーにある変更がコンフリクトしない場合のみリセットします。
作業ツリーの変更を残したままリセットするが、コンフリクトが発生しない場合のみ成功させたいときに使います。

git reset --keep HEAD~1

git resetをなかったことにする

git reset --hard ORIG_HEAD

バックアップのすすめ

--hard オプションでは、データが完全に消されるので、
重要な変更がある場合はgit stashgit commitを使ってバックアップを取っておくといいと思います。

git reflog

過去のコミットの「参照ログ」を表示するコマンドです。
git checkout、git commit、git pull などで HEAD がどのように移動したかがわかるので、
間違えて、変更を上書き、削除しても、git reflog によって元の状態を確認・復元できます。

git reflog

資料

困ったときの git reset コマンド集

ChatGPT

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?