【初心者向け】絶対にわかる!Git reset の使い方まとめ(図解つき)
Gitで開発していると…
「コミットを取り消したい!」
「ステージに追加しすぎた…戻したい!」
そんなときに超便利なのが git reset
です。
でも、「--soft」「--hard」って…何がどう違うの?と迷ってしまう方も多いはず。
この記事では、初心者でも一発で理解できる! git reset
の使い分けをやさしく解説します!
✅ まずは結論:この3つを覚えればOK!
コマンド | 影響範囲 | 使う場面 |
---|---|---|
git reset --soft HEAD~1 |
コミットのみ取消 | 「コミットメッセージを修正したい」 |
git reset --mixed HEAD~1 |
コミット+ステージ取消 | 「ステージから外してコード修正したい」 |
git reset --hard HEAD~1 |
全部取り消し(要注意) | 「全部なかったことにしたい(※慎重に)」 |
用語の復習:Gitの3つのエリアを整理しよう
エリア | 説明 |
---|---|
作業ディレクトリ | ファイルを実際に編集している場所 |
ステージ(インデックス) | コミットの準備をする場所 |
コミット履歴 | 確定したコードの記録(Gitのタイムマシン) |
💡 実例で学ぶ git reset
1. git reset --soft HEAD~1
(コミットだけ戻す)
git reset --soft HEAD~1
- ✅ 最新のコミットをなかったことにする
- ✅ ステージには残るので、すぐ再コミットできる
使い方例:
git commit -m "間違ったコミット"
#git reset でコミットを取り消す
git reset --soft HEAD~1
git commit -m "修正後のコミット"
コミットメッセージの修正に便利!
2. git reset --mixed HEAD~1
(コミット+ステージを戻す)
git reset --mixed HEAD~1
- ✅ コミットとステージの内容を取り消す
- ✅ 作業ディレクトリ(編集内容)はそのまま残る
📝 いったんコードを見直したいときに便利!
3. git reset --hard HEAD~1
(すべてを巻き戻す)
git reset --hard HEAD~1
- ❗ コミット・ステージ・作業ディレクトリすべて削除
- ❗ 保存していなかったコードも完全に消える!要注意!
📝 本当に「なかったこと」にしたいときだけ使おう!
🔍 補足:HEAD~1
って何?
-
HEAD
:今いる最新のコミット -
HEAD~1
:1つ前のコミット -
HEAD~2
:2つ前…という意味
git reset --soft HEAD~2 # 2つ前に戻る
万が一やらかしたら… git reflog
で復活!
git reflog
- 直近の操作履歴を見られるコマンド
- 間違って消してしまっても、過去の状態に戻せる!
git reset --hard <コミットID>
やばい!」と思ったら、まず reflog
!
まとめ:これさえ押さえれば大丈夫!
シーン | おすすめコマンド |
---|---|
メッセージを修正したい | git reset --soft HEAD~1 |
ステージを解除してコード修正 | git reset --mixed HEAD~1 |
全部なかったことにしたい(慎重に) | git reset --hard HEAD~1 |
この記事が良かったら、ストックやいいねをしてもらえると嬉しいです!