「Reset current branch to this Commit…」ひとつ前のコミットに戻す方法、複数のコミットをまとめる方法(Git Graph)
更新日:2025/02/25

Gitで本番環境をひとつ前のコミットに戻す方法
本番サーバーでmaster originをpullしたところ、何らかの不具合が発生してしまいました。急いで元の状態に戻すときの手順の参考に!
以下の手順で本番環境を前のコミットに戻すことができます。
1. ローカル環境での操作
まず、ローカル環境でこれから行う作業:
- masterブランチに切り替え
- Gitの操作メニューから「Reset current branch to this Commit…」を選択
- 戻したい安定版のコミット(不具合発生前のコミット)を選択
- これでローカルのmasterブランチは指定したコミットの状態に戻ります
2. リモートリポジトリへの反映
次に、変更をリモートに反映します:
# 必要であれば変更をコミット
git commit -m "Revert to previous stable version"
# リモートのmasterブランチに強制プッシュ
git push -f origin master
強制プッシュ(-f)は通常の操作ではあまり推奨されませんが、今回のように問題を修正するためには必要な操作です。
3. 本番環境での反映
最後に、本番環境で以下のコマンドを実行:
# 最新の変更情報を取得
git fetch origin
# 変更を適用
git pull origin master
これで本番環境は指定したコミットの状態に戻り、不具合は解消されるはずです。
「Reset current branch」と「Rebase current branch」
Reset current branch(ブランチのリセット):
- 現在のブランチの状態を指定したコミットに強制的に戻します
- 指定したコミット以降の変更履歴が完全に削除されます(
git reset --hard
の場合) - 履歴が書き換えられるため、他の開発者と共有しているブランチでは注意が必要です
- 主に「間違えた変更を完全に取り消したい」場合に使用します
Rebase current branch(ブランチのリベース):
- コミット履歴を再構成する操作です
- 指定したブランチやコミットの上に、現在のブランチのコミットを「積み直す」操作です
- 元のコミットは残りませんが、各コミットの内容(変更内容)は維持されます
- 履歴を整理してよりクリーンにする目的で使用します
- ブランチの分岐点を変更することで、マージ時の競合を減らす目的でも使用されます
例えばコミットA→B→C→Dがあって、Cに戻したい場合:
- Reset: Dが完全に削除され、Cの状態に戻ります
- Rebase: DをCの内容に基づいて再適用し、新しいD’が作られます
複数のコミットをまとめる方法(Git Graph)
まとめたいコミットの1つ前のコミットで右クリックします
例えば、コミット3回目から5回目をまとめるとすると、2回目のところで右クリックします
「Rebase current branch on this Commit…」をクリック
※現在作業中のブランチのベースを選択したコミットに変更するものです。つまり、現在のブランチの履歴を、指定したコミットを起点として再構築
「Launch Interactive Rebase in new Terminal」に✅をいれて、「Yes,rebase」
※Interactive Rebase(インタラクティブリベース) – 通常のリベースよりも詳細な操作ができるモードです。各コミットに対して「pick(そのまま使用)」「squash(前のコミットと統合)」「edit(編集)」「reword(コミットメッセージを変更)」などの操作を選択できます。
※ in new Terminal(新しいターミナルで) – この操作を現在のウィンドウではなく、新しいターミナルウィンドウで開始します。これにより、リベース操作中も他の作業を続けられます。
下記のように編集、まず i で「– INSERT –」インサートモードに変更
squash(s)は必ず前のコミットと結合するため最初のコミットは必ずpickである必要がある
※squashは押しつぶすという意味、つまり「複数のコミットを一つに押しつぶして統合する」という意味
修正が終わったら:ESC でインサートモードを終了:wq で保存して終了
※もし間違えたら、ESCキーinsertをぬけて:q!= 変更を保存せずに強制終了
下記の通り今度はコメントについての編集ができます。(git graphのグラフがまとまってなくて戸惑いますが、まだ途中なので、、)
修正が終わったら:ESC でインサートモードを終了:wq で保存して終了
下記の通りコミット3~5がまとまりました!

-
検索
(例) debug search etc.. -
カテゴリー
-
mixhostでのWordPress利用について
更新日:2024/04/02
303 view
-
scrollHint
更新日:2024/03/13
251 view
-
XML Sitemap Generator for Google不具合のダウングレード対応、代替プラグイン
更新日:2024/06/13
243 view
-
【SnowMonkey】納品までのフローまとめ
更新日:2025/02/15
164 view
-
【Snow Monkey】ショートコードで編集画面で任意の場所にHTMLファイルを挿入
更新日:2025/04/18
131 view
-
【Googleサーチコンソール】検索画面で表示させたくない「Googleのインデックス削除」
更新日:2024/06/07
131 view
-
tailwindcss使い方
更新日:2024/03/13
125 view
-
キーワード検索で上位表示させる方法【SEO】
更新日:2023/10/28
120 view
-
Recline: GitHub Copilotで動作するClaude 3.5 Sonnet搭載の開発支援ツール
更新日:2025/01/20
115 view
-
WordPressプラグイン「All-in-One WP Migration」のトラブル
更新日:2022/03/31
84 view
-
ワードプレスセキュリティー対策まとめ【2025年】「site guard wordpress」「BackWPup バージョン5でUI変更!?」
更新日:2025/02/25
77 view
-
VSCodeで開発効率を劇的に向上させる!Roo Code(Roo-Cline)プラグイン完全ガイド
更新日:2025/04/06
75 view
-
Express、FastAPIを使用し、二重fetch構成のメリット
更新日:2025/04/26
51 view
-
SSHを使用してGitHubのリポジトリをクローン、複数の接続元で公開鍵をディレクトリで区別する方法
更新日:2025/01/13
49 view
-
「JSONスキーマ」と「Few-shot Learning」で実現する次世代生成AIソフトウェア開発の可能性
更新日:2025/07/06
44 view
-
Supabase 初心者向け解説、Supabase CLI インストール(Scoop)
更新日:2025/06/07
44 view
-
リファクタリング【VSCode Javasctipt Python】
更新日:2025/03/09
36 view
-
Next.jsでAWS Amplifyを使ってPDFアップロード機能を実装、Fast APIにPOST(こちらはApp runner)
更新日:2025/06/06
36 view
-
形態素解析とは?初心者でもわかるツールの使い方と実践例
更新日:2025/02/08
34 view
-
VSCodeオススメプラグイン一覧「 Pretter – Code formatter」「PHP Intelephense 」
更新日:2025/07/07
31 view