今回は誤ってmasterブランチで作業してしまい、加えてコミットまたはプッシュもしてしまった場合の対処方法について解説したいと思います。基本的にはコードをコピペするだけで解決できるように解説したいと思います。masterブランチで作業してしまうミスは、git使いたての頃はあるあるだと思います。HEAD~打ち消したい数masterでコミットしてしまった場合まずはmasterでコミットしてしまった場合の対処法について見ていきましょう。今回はコミットのみで、プッシュはしていないことが前提です。このように誤ってmasterブランチで作業をし、そのままコミットしてしまいました。master"commitの後ろに「-m」をつけることで、末尾にどのようなコミットなのかコメントを記入することができます。コミットメッセージは、「なぜ変更をしたか」を意識して書きましょう。今の状態はこんな感じです。logコマンド」は、これまでのコミット履歴を確認することができるコマンドです。これまでコミットをコミットメッセージの一覧という形で表示します。HEAD^」は直前のコミットを取り消す方法です。コミットした直後、すぐに過ち気づいた場合は使えるコマンドですね。先ほど誤ってコミットした履歴をこのコマンドで取り消してみましょう。logコマンド」で確認すると、誤ってコミットしてしまった履歴が取り消されているはずです。HEAD^」は直前のコミットを変更履歴ごと取り消す方法です。先ほどの–softオプションと比べてどのように異なるか見ていきましょう。同様にmasterブランチでコミットしてしまったと仮定します。HEAD^」を使ってコミットを取り消してみましょう。logコマンド」で確認すると、–softオプションの時と同様に誤ってコミットしてしまった履歴が取り消されているはずです。–hardオプションを指定すると–softオプションの場合と違い、コードの変更履歴が戻ってきません。変更内容が全て消し飛ぶので、–softオプションに比べて慎重に行わなければならない点に注意しましょう。<コミットID>先ほど紹介した–hardオプションは、直前のコミットだけでなく、いかなるコミットも取り消すことができます。その場合は–hardの後ろにコミットIDを付与します。logコマンド」で確認することができるよ。具体例で見ていきましょう。以下のようにmasterで作業していたことに気づかず、3回コミットしてしまいました。今の状態を図で表すとこんな感じです。commit」のところまで「–hardオプション」を使って戻ってみましょう。以下のコマンドをターミナルで打ち込んでください。すると、3つのコミット履歴が取り消されるはずです。d0870d91b65fa9adcbabf3a07ef9797521a79efeポイントは戻りたいコミットIDを指定することです。次はmasterブランチでプッシュまでしてしまった場合の対処方法について解説したいと思います。<コミットID>コミットを取り消すコマンドでも使用しましたが、–hardオプションはプッシュまでしてしまった時にも有効です。手順はコミットを打ち消す時と同じになるので、今回は省略します。–hardオプションは強制的に履歴を取り消せるんだなって覚えておきましょう。revert」は、誤ったコミットを打ち消すコミットを新たに生成することで取り消すコマンドです。HEAD」はプッシュした直後、すぐに過ち気づいた場合は使えるコマンドですね。エラーを再現してみましょう。以下のようにmasterブラントで作業してしまい、コミット&プッシュをしてしまいました。masterすると、このようにGithub上にもコミットされた履歴が残ってしまいました。logの結果これらをrevertを使って解消していきます。以下のコマンドを打ち込むと、誤ったコミットを打ち消すコミットが生成されると思います。HEADコマンドを打ち込むと画面が切り替わりますが、「:q」で抜けることができます。logの結果これで打ち消しコミットが生成されたので、あとはpushをするだけです。masterリモートリポジトリにも打ち消しコミットの内容が反映されましたね。revert」で複数の打ち消しコミットを作成することも可能です。最新のコミットを含めて5つ(計6つ)のコミットを打ち消したい場合は以下のようになります。HEAD~6あとは同様にpushをし直すだけで完了です。楽天市場調べ-詳細)Amazon楽天市場Yahooショッピング今回は、誤ってmasterでコミットもしくはプッシュしてしまった時の対処法について解説しました。1人でやるときはrevertはせず、–hardオプションで直すのがベストかなと個人的には思います。yoshi19941117TechTechMedia【Git初心者向け】ターミナルを用いてコミットまで操作してみよう!【Rails基礎】URLを自在にカスタマイズ!ルーティングに名前を指定す...Railsエンジニアちばよしはる銀座にあるヘルステック企業のRailsエンジニア。初心者から中級者向けに記事を更新しています。お酒とカレーと競馬が好き。TechTechMedia。