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…」が無効になる条件
- 現在のブランチがリモート追跡中の状態
- デフォルトの main / master のように「保護されたブランチ」や、リモートと同期しているブランチでは、履歴を書き換える reset は危険なので無効化されています。
- 選んでいるコミットが現在のブランチの履歴上にない
- 例えば他のブランチからのマージコミットや、チェックアウトしていない履歴の場合、reset 対象にできません。
- 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(コマンドライン)」と比較しながら解説してみましょうか?
ディスカッション
コメント一覧
まだ、コメントがありません