一瞬で過去にもどれる魔法の呪文集|Gitやばい辞典

WEB制作の現場で本当に起きる現場で知らないと本当に困るGITやばい辞典 画像で詳細解説

現場で起きる予期せぬ衝突やノイズを瞬時にかき消す、一瞬で過去に戻れる「魔法の呪文」をまとめました。

リモートと完全に同期する呪文

git fetch origin
git reset --hard origin/main
※ main の部分は、自分の環境のブランチ名(master など)に合わせて書き換えてください。

効果: ローカルの状態を捨て、リモート(GitHub等)の最新状態に強制上書きする。

使い時: 本番環境で何をやってもpullが通らない時の最終手段。


直前のマージやプルをなかったことにする呪文

git reset --hard ORIG_HEAD

効果: pullmerge を実行する直前の状態にタイムスリップする。

使い時:pull したらコンフリクトで画面が真っ赤になった!一旦やる前に戻したい!」という時。

できること: 保存(コミット)していない、エディタで書いた未保存のコードを全部消して元通りにする。

できないこと: マージしてしまった履歴(コミット)を消すことはできない。

ORIG_HEADとは?

ORIG_HEADは、git amgit mergegit rebasegit reset を実行した瞬間に、**「コマンドを叩く直前に自分が立っていた場所」**へ自動で貼り替えられるタグです。

対象のコマンドが呼ばれるたびに、最新の「実行直前の場所」へと移動します

これを利用することで、マージやリセットなど大きな操作をしてソースがおかしくなっても、その修正直前まで時を戻すことができます。


直前のコミットをなかったことにする呪文

# ファイルの変更内容は残したまま、コミットだけ取り消す
git reset --soft HEAD~1

効果: ファイルの修正内容は残したまま、最新の「コミット(保存)」だけを取り消す。

使い時: 「コミットメッセージを間違えた」「余計なファイルまでコミットに含めてしまった」時。


自分の修正をなかったことにする呪文

git checkout .

できること: 保存(コミット)していない、エディタで書いた未保存のコードを全部消して元通りにする。

できないこと: ステージング(add)の内容、マージしてしまった履歴(コミット)を消すことはできない。

git reset --hard HEAD

効果: まだコミットしていない「作業中の変更」や「ステージング(add)した内容」をすべてゴミ箱に捨てます。

使い時: 「いろいろいじりすぎて収拾がつかなくなったから、一旦今のコミット状態までリセットしたい」という時。

上記2つのコマンドでは、まだGit管理していない(一度も add されていない)新しいファイルやディレクトリは消えません。そんな時はこちら。

git clean -df

効果: 一度も add されていない新規ファイルやディレクトリを強制削除する。

使い時: サーバー上にいつの間にか増えた「謎のファイル」を一掃したい時。