【実体験あり】Git HEAD操作と巻き戻し完全ガイド
開発してると必ず来る瞬間があります。
「この変更いらなかった…」「昨日の状態に戻したい」
僕も最初は軽い気持ちでGitを触っていて、何度も取り返しのつかないミスをしました。
この記事では、そのリアルな体験をベースに「安全な戻し方」を解説します。
HEADとは?ここ理解すると全部ラクになる
HEADはシンプルに言うと「今いる場所」です。
- 現在のブランチの最新コミットを指す
- 作業の基準になる
- 過去にも移動できる
最初は意味不明でしたが、「現在地」と考えたら一気に理解できました。
git checkoutで過去を見る(便利だけど罠あり)
git checkout 1234abc
体験談①:バグ特定で神ツールだった
原因不明のバグが出た時、過去のコミットを1つずつcheckoutして確認しました。
結果、「3日前の変更が原因」と特定できました。
この時はマジでGitに救われました。
体験談②:コミット消えた事件
やらかしたのがこれ。
- checkout状態で修正
- そのままcommit
- 戻ったら消えてる
これ、Detached HEAD状態だとブランチに紐づかないのが原因です。
当時は「データ消えた」と思ってめちゃくちゃ焦りました。
git resetは最強だけど一番危険
git reset --soft HEAD~1
git reset --mixed HEAD~1
git reset --hard HEAD~1
- --soft:変更は残る
- --mixed:ステージ解除
- --hard:全部削除(危険)
体験談③:--hardで全消しした話
これは本当にやらかしました。
git reset --hard HEAD~3
実行後、
全部消えました。
- 数時間の作業
- 細かい調整
- 未保存の変更
完全終了です。
このときは本気で「終わった…」と思いました。
それ以降のルール
- --hardは基本使わない
- 必ずgit log確認
- 迷ったらrevert
- 作業前にcommitかstash
git revertは安全な巻き戻し
git revert 1234abc
- 履歴を残す
- 新しいコミットで打ち消す
- チーム開発で安全
体験談④:チーム開発で助かった
ミスコミットした時、resetすると履歴が壊れる状況でした。
revertを使った結果:
- 履歴そのまま
- 変更だけ取り消し
- 他メンバーに影響なし
このとき「revertが正解」と理解しました。
差分確認しないと事故る
git show
git diff HEAD~1 HEAD
体験談⑤:確認せずに事故
昔はノリでresetしてました。
結果:
- 違うコミット戻す
- 必要な変更消す
- 復元不可
それ以来、必ず差分確認するようになりました。
ファイル単位で戻す(実務で一番使う)
git restore file.txt
git restore --staged file.txt
体験談⑥:一番助かったコマンド
正直これが一番使います。
- 一部だけミス
- 全部戻すのは怖い
- ピンポイントで修正したい
こういう時にめちゃくちゃ便利です。
結論:Gitは使い方で天国にも地獄にもなる
- 確認 → checkout
- 履歴変更 → reset(慎重)
- 安全第一 → revert
- 部分修正 → restore
Gitは怖いツールじゃなくて、最強の保険です。
ただし、使い方を間違えると一瞬でデータ消えます。
僕みたいに一度痛い目を見る前に、この知識を使ってください。
壊しても戻せる。
それがGitの本当の強さです。







0 件のコメント:
コメントを投稿