【Git】ローカルでだけ動作確認したいときの一時的なコミット&巻き戻し方法

【Git】ローカルでだけ動作確認したいときの一時的なコミット&巻き戻し方法 Git

開発中に「ちょっとこの変更だけコミットして動作を確認したい」というシーンは意外と多いものです。しかし、他の人と共有する必要がない作業をわざわざリモートにpushするのは避けたいところ。この記事では、ローカル限定での一時的なコミットと、その後元に戻す方法について解説します。

一時的な変更をローカルでコミットする理由

開発の過程で次のようなケースに遭遇することがあります。

  • 単体テストを通すために一時的にコードを加えたい
  • ビルドしてみないと不具合の有無がわからない
  • 他の修正と混在させたくないので差分を分けたい

このようなときには一時コミット → 動作確認 → 巻き戻しという流れが有効です。

一時的にコミットして動作確認する方法

まずは現在の作業状況を把握し、安全に一時コミットを行う準備をします。

ステージングして一時コミットする

git add .
git commit -m "temp: 動作確認用一時コミット"

この時点で全変更内容をコミットし、ローカルのHEADに追加された状態になります。pushは不要です。

一時コミット状態でビルド・動作確認する

いつも通りローカル環境でビルドやテストを行います。
例えば以下のようにビルドコマンドを実行します。

npm run build
# または
php artisan serve

問題がなければそのまま正式な作業として進めるもよし、不要であれば元に戻します。

一時コミットを取り消して元に戻す方法

動作確認が済んで一時コミットを削除したい場合、次のいずれかの方法で対応します。

方法1:git reset –soft HEAD~1(作業ツリーはそのまま)

git reset --soft HEAD~1

このコマンドで直前のコミットを取り消し、ステージング状態に戻すことができます。作業内容はそのまま保持されているので、再編集も可能です。

方法2:git reset –mixed HEAD~1(ステージ解除して作業ツリーに戻す)

git reset --mixed HEAD~1

この場合はステージからも外れるので、git statusを確認すると変更内容が未ステージ状態に戻っていることがわかります。

方法3:git reset –hard HEAD~1(完全に巻き戻す)

git reset --hard HEAD~1

一時コミットの内容を完全に破棄する方法です。作業ツリーもロールバックされるため、変更そのものが不要だった場合に使います。

※ –hardは元に戻せないため慎重に実行してください。

ブランチを分けて確認するという選択肢も

一時コミットをmainブランチやfeatureブランチで行うことに不安がある場合は、一時的なブランチを作成して確認するのもひとつの手です。

git checkout -b temp/test-feature
git add .
git commit -m "一時テスト"
# 動作確認後
git switch main
git branch -D temp/test-feature

ブランチ単位で分離しておけば、元の作業に影響を与えることなくテストできます。

まとめ

Gitを使ったローカルでの一時コミットと巻き戻しは、動作確認や検証作業をスムーズにするための強力な手段です。以下のポイントを押さえておきましょう。

  • 一時コミットは git commit -m で通常通り実行可能
  • 巻き戻すには git reset 系のコマンドを適切に選ぶ
  • 不安がある場合は一時ブランチでの作業が安心

本格的なコミット前に不安な点をテストしておくことで、無駄なpushや差分の混在を防げます。ぜひ活用してください。