GitHub Desktopでのコミット操作まとめ

Git を学習・実務で扱っていると、「直前のコミットを修正したい」「間違ったコミットを取り消したい」といった状況が必ず出てきます。GitHub Desktop では、これらの操作を GUI で直感的に行えるようになっています。

本記事では、GitHub Desktop の [History] ビューでコミットを右クリックしたときに表示されるメニュー を解説します。


1. コミットの修正・やり直し

Amend commit…

  • 直前のコミットを修正する機能。
  • ファイルを追加/削除したり、コミットメッセージを変更可能。
  • 実際には git commit –amend と同等。
  • 注意点: 既にリモートに push した後で使うと履歴が書き換わり、他人の作業に影響が出るため要注意。

Undo commit…

  • 直前のコミットを「なかったこと」にして、変更だけを ステージに戻す
  • 実際には git reset –soft HEAD^ 相当。
  • コードは消えず、再度コミットし直せます。

Reset to commit…

  • 指定したコミットまでリポジトリを戻す。
  • 実際の git reset と同様に soft / mixed / hard を選べます。
    • soft → 変更はステージに残す
    • mixed → 変更はワークツリーに残す
    • hard → 変更ごと完全に削除
  • やり直しの最終手段。誤操作すると変更が完全に失われるため慎重に。

GitHub Desktop で 「Reset to commit…」がグレーアウトして選択できない のには理由があります。


「Reset to commit…」が無効になる条件

  1. 現在のブランチがリモート追跡中の状態
    • デフォルトの main / master のように「保護されたブランチ」や、リモートと同期しているブランチでは、履歴を書き換える reset は危険なので無効化されています。
  2. 選んでいるコミットが現在のブランチの履歴上にない
    • 例えば他のブランチからのマージコミットや、チェックアウトしていない履歴の場合、reset 対象にできません。
  3. GitHub Desktop の設計上
    • GitHub Desktop は 初心者でも安全に操作できること を重視しており、履歴を壊す可能性が高い reset は積極的に解放していません。
    • 代わりに「Undo commit」や「Revert commit」を推奨しています。

解決方法・代替案

安全にやり直したい場合

  • Undo commit…→ 直前のコミットを取り消して、変更をステージに戻す。
  • Revert changes in commit…→ 取り消したいコミットを「逆のコミット」で打ち消す。→ 公開ブランチではこちらが推奨。

強制的に reset したい場合

GitHub Desktop ではできないため、CLI で操作する必要があります。

# 例: 1つ前のコミットに戻す(変更は削除)
git reset --hard HEAD^

# 例: 特定のコミットまで戻す(SHAを指定)
git reset --hard <commit-sha>

※ この場合、push 済みだとリモートとの履歴が食い違うため、git push –force が必要になります。

→ 共同開発中は危険なので注意が必要です。


まとめ

  • GitHub Desktop では Reset to commit は基本的に使えない仕様
  • 代替として Undo / Revert を利用するのが安全。
  • どうしても reset が必要なら CLI を使う。

Revert changes in commit

  • 指定したコミットの内容を「打ち消す」新しいコミットを作成。
  • git revert <commit> 相当。
  • 履歴を壊さずに修正を取り消せるため、公開済みブランチではこの方法が安全

Reorder commit

  • コミットの順序を入れ替える。
  • git rebase -i を GUI で操作するイメージ。
  • まだ push 前の作業ブランチ整理に便利。

2. ブランチ・タグ関連

Create branch from commit

  • 選択したコミットから新しいブランチを作成。
  • git branch <name> <commit> 相当。

Create Tag…

  • そのコミットにタグを付ける。
  • リリースやマイルストーン管理に利用。

Cherry-pick commit…

  • 選んだコミットだけを別ブランチに適用。
  • git cherry-pick <commit> 相当。
  • 「バグ修正だけ別のブランチにも反映したい」ケースに便利。

3. その他

Copy SHA

  • コミットのハッシュ値をコピー。

Copy tag

  • そのコミットに付与されているタグをコピー。

View on GitHub

  • GitHub の Web 画面で対象コミットを直接開く。

まとめ

GitHub Desktop の右クリックメニューを使えば、CLI のコマンドを知らなくても以下の操作が可能です。

  • Amend / Undo / Reset → 履歴の修正・やり直し
  • Revert → 公開済みブランチで安全に打ち消し
  • Reorder → コミット順の整理
  • Branch / Tag / Cherry-pick → バージョン管理を柔軟に

CLI に慣れていない初学者でも、GitHub Desktop の GUI を活用することで安全に履歴操作を体験できます。


👉 次回は、この操作を「CLI(コマンドライン)」と比較しながら解説してみましょうか?

訪問数 7 回, 今日の訪問数 7回