Main Branchに直接Commit してしまった時のRecover方法
Main Branchに直接Commit してしまった時のRecover方法
初めまして、プログラミング初心者のRisaと申します。本記事は自身の備忘録としてまとめたものです。「うっかりmain Branchに直接commitしてしまった!」そんな焦る瞬間、ありませんか?この記事では、そんな時に使えるrecover方法を初心者目線で解説しています。同じような状況でお困りの方の参考になれば幸いです。
Step 1: 現在の状況を確認する
Terminalで以下のcommandを実行して、直近のcommit履歴を確認しましょう。
git log --oneline
Step 2: 新しいBranchを作成する
HEAD
の状態を保持したまま、間違えて行ってしまった変更を別のbranchに移動させます。
git checkout -b feature-branch
このcommandで「feature-branch」という新しいbranchが作成され、main branchで行ったcommitがそのまま移行されます。
-b
option:このoptionを使うと、新しいbranchを作成して、同時にそのbranchに切り替えます。もし -b
を付けなければ、すでに存在するbranchにしか切り替えられません。
Step 3: Main Branchをresetする
main branchに誤ってcommitした状態を元に戻します。
注意: リモートにプッシュしていない場合のため以下の --hard
オプションを使います。
git checkout main
git reset --hard origin/main
これで、main branchはリモートの状態に戻り、誤って追加したcommitが削除されます。
今までの作業や未commitの変更は、すべて消えてしまいます。消したくない変更がある場合は、事前にバックアップを取るか、--soft
もしくは --mixed
などのoptionを使うのが安全です。
Step 4: 新しいbranchに切り替え作業する
新しく作成した「feature-branch」に切り替えて作業を続けましょう。
git checkout feature-branch
必要に応じて変更を加えたら、このbranchからpull request(PR)を作成するか、remote repositoryにpushしてチームに共有できます。
git push origin feature-branch
既にpushしてしまった場合の対処😨
もし間違えてcommitした内容をすでにremote repositoryにpushしてしまった場合、以下の手順で対処します。
git checkout main
git reset --hard origin/main
git push --force
注意: 強制pushは他の開発者の作業を壊してしまう可能性があるため、慎重に行ってください。
間違いが少なければgit revert
commandでcommitを取り消す方法も検討しましょう。これは、リモートの履歴に変更履歴を残したまま修正する方法です。
まとめ
以上の行程を踏めばbranchを作り忘れてmainにcommitしてしまったミスを修正することができます。しかしpush後の修正には十分注意が必要ですので気をつけてください。
▶️ポイント
・必ず作業前に新しいbranchを作成する癖付けをしましょう。
・commitやpushを実行する前に git status
で確認することも有効かもしれません。
参考
Discussion