GitHub Desktopでの作業ミス修正ガイド

~mainブランチから正しいブランチへ変更を移す手順~

本ドキュメントでは、GitHub Desktop を使用中に main ブランチで作業してしまった場合の対処方法を紹介します。主に以下の2つの状況に分けて解説します。

  1. 未コミットの変更がある場合
  2. 既にコミットしてしまった場合(ただし未プッシュの場合)

また、ブランチ切り替え時に表示される選択画面(下図)の挙動についても補足します。


ブランチ切り替え時の選択画面

GitHub Desktop で別のブランチに切り替えようとした際に、以下のようなダイアログが表示されることがあります。


  • Leave my changes on main
    • 現在のブランチ(例: main)での未コミット変更を「stash」扱いとして保持し、後から戻ったときに復元できるようにします。
  • Bring my changes to feature/data
    • 現在のブランチでの未コミット変更を、新たに切り替えるブランチ(例: feature/data)へ移動(引き継ぎ)します。

いずれかを選択し、Switch branch をクリックすると、選択内容に応じて変更が保持または移動されます。


1. 未コミットの変更がある場合

目的

未コミットの変更を、誤って作業してしまった main ブランチから、意図したブランチ(例: feature-branch)へ安全に移動します。

手順

  1. 現在の状態の確認
    • GitHub Desktop を起動し、画面上部または左上に表示されている現在のブランチ名が main であることを確認します。
    • 右側の Changes タブに、未コミットの変更が一覧表示されていることを確認します。
  2. 新しいブランチの作成開始
    • 画面上部または左上の Current Branch ボタンをクリックし、メニューから New Branch を選択します。
  3. ブランチ名の入力と作成
    • 「New Branch」ダイアログが表示されたら、意図するブランチ名(例: feature-branch)を入力し、Create Branch をクリックします。
  4. 変更の引き継ぎ選択画面の操作
    • 新しいブランチ作成後、以下のような選択画面が表示されます。
    • Leave my changes on main
      • main ブランチに変更を残したい場合に選択します。後で main ブランチに戻ったときに変更を復元できます。
    • Bring my changes to feature-branch
      • main での未コミットの変更を新しいブランチへ移動(引き継ぎ)する場合に選択します。
      • 新しいブランチへ変更を移したい場合は、Bring my changes to feature-branch を選択し、Switch branch をクリックしてください。
  5. 作業の継続
    • 新しいブランチに切り替わった状態で、Changes タブの内容が正しく引き継がれていることを確認します。
    • その後、通常通りコミットやプッシュを行ってください。

2. 既にコミットしてしまった場合(未プッシュの場合)

目的

誤って main ブランチにコミットしてしまった変更(ただしまだリモートにプッシュしていない)を、Undo 機能を使用して取り消し、意図したブランチに移します。

前提条件

  • コミットした内容が まだリモートにプッシュされていない こと。

手順

  1. コミット状態の確認
    • GitHub Desktop の History タブで、誤って main ブランチでコミットした最新のコミットを確認します。
  2. Undo 機能の実行
    • Changesタブを選択し、下部の Undo ボタンをクリックします。
    • これにより、誤って行った直前のコミットが取り消され、変更内容は Changes タブに未コミットの状態として戻ります。
  3. 新しいブランチの作成
    • 変更内容が未コミットの状態に戻ったら、画面上部または左上の Current Branch ボタンをクリックし、New Branch を選択します。
    • 「New Branch」ダイアログで、意図するブランチ名(例: feature-branch)を入力し、Create Branch をクリックします。
  4. 変更の引き継ぎ選択画面の操作
    • 新しいブランチ作成後、前述のような選択画面が表示されます。
    • Bring my changes to feature-branch を選択することで、取り消したコミットの内容をそのまま新しいブランチに引き継ぐことができます。
  5. 作業の継続とコミット
    • 新しいブランチに切り替わった状態で、変更内容を確認し、必要に応じてコミットやプッシュなどの作業を進めます。

補足事項

  • Undo 機能の注意点
    Undo 操作は、まだリモートにプッシュされていないコミットに対してのみ有効です。プッシュ済みのコミットを取り消す場合は、リバートや別の手法を検討してください。
  • バージョンや設定の違い
    GitHub Desktop のバージョンや設定によって、画面の文言や表示位置が若干異なる場合があります。基本的な操作フローは同様ですので、状況に応じて読み替えてください。

これらの手順に従うことで、誤って main ブランチで作業してしまった変更を、未コミット・コミット済み(未プッシュ)を問わず、安全に意図したブランチへ移すことが可能です。日常的にブランチ管理とコミット状態を確認することで、混乱を防ぎ、スムーズな開発フローを維持しましょう。