GitHub Desktopの使い方:インストールからコミット、プルリクエストまで

公開 書いた人 大林 諒

GitHub Desktopを入れたものの、最初の画面で手が止まっている人に向けて書きます。サンプル料理教室の代表が料金表を直して、GitHubへ送り、確認を頼むプルリクエストを作るまでを1本で通します。どの道具を選ぶかは「GitHub Desktop・Sourcetree・VS Codeの使い方と選び方」に書いたので、ここではGitHub Desktopを使い始める人の手順に絞ります。読み終わると、ひととおりの操作を自分で進められ、間違えたときの戻し方も判断できます。

画面の文言はGitHubの公式ドキュメントに載っているものだけを書き、同じことをするGitのコマンドは実際に動かした表示を載せています。

この記事の内容
  1. 先に答えると
  2. GitとGitHubとGitHub Desktopの違い
  3. 入れて、サインインする
  4. リポジトリを手元に持ってくる
  5. 画面の読み方
  6. 料金表を直して送る
  7. 枝を作って、プルリクエストへ
  8. 衝突が出たとき
  9. 取り消す:Undo、Revert、Discardの違い
  10. できないことと、その代わり
  11. よく詰まるところ
  12. 次に読む

先に答えると

GitHub Desktopは、GitHubが作っている無料でオープンソースのアプリで、MacとWindowsで動きます。普段の流れは「Changes」で差分を見る、「Summary」を書いて「Commit to main」を押す、「Push origin」を押す、の3つです。

  • Gitは履歴を残す仕組み、GitHubはそれを預ける場所、GitHub DesktopはGitに命令を出す窓口です
  • サインインはブラウザで済みます。ユーザー名とパスワードをアプリに入れる方法はありません
  • プルリクエストはアプリから作り始め、仕上げとレビューとマージはブラウザです
  • 送る前の取り消しは「Undo」、送ったあとは「Revert Changes in Commit」、コミット前の変更を捨てるのは「Discard Changes」です
  • コマンドでもGitを使うなら、Gitは別に入れます

GitとGitHubとGitHub Desktopの違い

名前何かサンプル料理教室では
Git変更の履歴を残す仕組みwebsite フォルダの履歴
GitHub履歴を預けて共有するサービスsample-cooking/website
GitHub DesktopGitの操作を画面でするアプリ代表のパソコンに入れる

リポジトリは、ファイルと変更履歴を入れておく場所です。コミットは、変更を1回分の記録として残す操作です。ボタンで作ったコミットも、コマンドで作ったコミットも同じものなので、代表がGitHub Desktopで送った変更を、外注エンジニアBはコマンドで受け取れます。

入れて、サインインする

対応するのはmacOS 12.0以降と、Windows 10の64ビット版以降です(2026年11月時点)。Linuxは公式では未対応です。

インストール

  1. github.com/apps/desktop を開きます。
  2. Macは「Download for macOS」、Windowsは「Download for Windows」を押します。
  3. ダウンロードしたファイルをダブルクリックします。Macはzipを開いたあと、中のアプリをもう一度ダブルクリックします。
  4. インストールが終わると、GitHub Desktopが自動で開きます。

サインイン

  1. Macはメニューの「GitHub Desktop」から「Settings」、Windowsは「File」から「Options」を開きます。
  2. 「Accounts」を開きます。
  3. 「Sign Into GitHub.com」を押します。
  4. 「Continue With Browser」を押します。ブラウザが開きます。
  5. ブラウザで「Sign in」を押します。
  6. 2段階認証のコードを入れて「Verify」を押します。
  7. 案内に従ってGitHub Desktopに戻ります。

名前とメールを入れる

コミットには、誰が変えたかの名前とメールが記録されます。

  1. 同じ設定の画面で「Git」を開きます。
  2. 「Name」に名前を入れます。
  3. 「Email」の一覧からメールを選びます。一覧に無ければ「Other」を選んで入力します。
  4. 「Save」を押します。

ここのメールがGitHubのアカウントのメールと合っていないと、コミットの前に警告が出ます。名前とメールの考え方は「Gitのインストールと初期設定:MacとWindows、名前とメールと認証」に書きました。

リポジトリを手元に持ってくる

手元に持ってくる操作をclone(クローン)と呼びます。

  1. 「File」の「Clone Repository」を押します。
  2. 「GitHub.com」のタブを押します。
  3. 一覧から sample-cooking/website を選びます。
  4. 「Local Path」の横の「Choose…」を押して、置くフォルダを選びます。
  5. 下の「Clone」を押します。

一覧に出ないときは、招待を承諾していないか、別のアカウントでサインインしています。GitHubの画面の「Open with GitHub Desktop」を押して始めることもできます。

画面の読み方

上の列に今のリポジトリと枝と送受信のボタン、左に2つのタブ、左下にコミットの欄があります。

表示場所意味
「Current repository」上の列今開いているリポジトリ。押すと切り替え
「Current Branch」上の列今いる枝。押すと切り替え、新しい枝の作成
「Fetch origin」上の列GitHubに新しいコミットがあるか確かめる。手元のファイルは変わらない
「Pull origin」上の列(受け取るものがあるとき)GitHubのコミットを手元に取り込む
「Push origin」上の列(送るものがあるとき)手元のコミットをGitHubへ送る。送っていない数が出る
「Changes」左のタブまだコミットしていない変更の一覧。右に差分
「History」左のタブ今の枝のコミットの一覧
「Summary」左下コミットの短い説明
「Description」左下詳しい説明。空でよい
「Commit to main」左下手元に記録するボタン。main のところは今いる枝の名前

ブランチ(枝)は、本番の中身とは別に作業するための線です。origin は、GitHub側を指す名前です。

ファイル一覧の色は、赤が削除、黄色が変更、緑が追加です。差分(変わった行だけの表示)の右上の歯車で、横並びの表示に切り替えられます。

GitHub Desktop の上の列、左のタブ、左下のコミット欄の位置
GitHub Desktop の上の列、左のタブ、左下のコミット欄の位置

料金表を直して送る

menu.html の基本コースを5,000円から5,500円に直す例です。

  1. 「Repository」の「Open in default editor」を押します。設定した編集用のアプリが開きます。
  2. 金額を直して保存します。
  3. GitHub Desktopに戻ります。左の「Changes」に menu.html が出ます。
  4. menu.html を押します。
  5. 右の差分で、金額の行だけが変わっているか見ます。
  6. 「Summary」に「料金表を修正」と書きます。
  7. 「Commit to main」を押します。ここではまだ手元に記録しただけです。
  8. 上の「Push origin」を押します。ここでGitHubに届きます。
  9. 「Repository」の「View on GitHub」を押します。ブラウザで履歴に出ているか確かめます。

ファイルの左のチェックを外すと、そのファイルはコミットに入りません。.env のようにパスワードが入るファイルが一覧に出たら、チェックを外して止めます。差分の行を押して青を消すと、その行だけをコミットから外すこともできます。

同じことをコマンドですると、次のようになります。To の行の場所は練習用のフォルダなので縮めてあります。

$ git push origin main
To …/remote/website.git
   0c0eb95..99936ac  main -> main

0c0eb95..99936ac は、GitHub側の履歴がこの番号からこの番号へ進んだという意味です。各コマンドとの対応は「git add・commit・pushの違い:保存して送るまでの流れ」にあります。

Summary を書いて Commit to main を押し、Push origin で送る3つの順番
Summary を書いて Commit to main を押し、Push origin で送る3つの順番

枝を作って、プルリクエストへ

プルリクエスト(Pull Request、PR)は、枝の変更を本筋に入れていいかを確認する依頼です。夏の教室を add-summer-class という枝で作る例です。

枝を作って切り替える

  1. 上の「Current Branch」を押します。
  2. 「New Branch」を押します。
  3. 「Name」に add-summer-class と書きます。
  4. 「Create branch based on…」で main を選びます。
  5. 「Create Branch」を押します。
  6. 上の「Publish branch」を押します。枝がGitHubに届きます。

枝を切り替えるときは「Current Branch」から枝を選びます。保存したままコミットしていない変更があると「Switch Branch」の窓が出ます。「Leave my changes on 今の枝」か「Bring my changes to 移る先の枝」を選び、「Switch Branch」を押します。どちらか分からないなら、先にコミットします。

プルリクエストを作る

  1. 夏の教室を書いて保存します。
  2. 「Summary」に「夏の教室を追加」と書きます。
  3. 「Commit to add-summer-class」を押します。
  4. 上の「Push origin」を押します。
  5. 「Preview Pull Request」を押します。枝と合流先の差分が出ます。
  6. 「base:」の一覧が main になっているか見ます。
  7. 「Create Pull Request」を押します。ブラウザでGitHubが開きます。
  8. ブラウザで題名と説明を書きます。
  9. ブラウザの「Create pull request」を押します。

アプリの中では、プルリクエストの一覧と中身を見られますが、コメントはできません。レビューとマージはブラウザです。外注エンジニアBが作ったプルリクエストは、「Current Branch」を押して一番上の「Pull Requests」から選ぶと手元で見られます。「Branch」の「View Pull Request on GitHub」でブラウザに移ります。レビューからマージまでは「プルリクエストとは:作り方・レビュー・マージの流れ」に続きます。

Preview Pull Request で base: を確かめ、Create Pull Request へ進む
Preview Pull Request で base: を確かめ、Create Pull Request へ進む

mainの変更を枝に取り込む

作業中に main が進んでいたら、枝に取り込んでおきます。

  1. 「Current Branch」を押します。
  2. 「Choose a branch to merge into add-summer-class」を押します。
  3. 一覧の main を押します。
  4. 「Merge main into add-summer-class」を押します。
  5. 上の「Push origin」を押します。

コマンドで同じことをすると、次のようになります。

$ git merge --no-edit main
Merge made by the 'ort' strategy.
 index.html | 1 +
 1 file changed, 1 insertion(+)
$ git log --oneline --graph -4
*   23bb2e8 Merge branch 'main' into add-summer-class
|\  
| * dd9bc03 問い合わせの電話番号を修正
* | 85d2ef6 夏の教室を追加
|/  
* 92a59e5 Revert "料金を6,000円に変更"

衝突が出たとき

衝突(コンフリクト)は、同じファイルの同じ場所を2人が変えて、どちらを残すかをGitが決められない状態です。データは失われていません。

合流しようとして衝突があると、公式の説明では「Merge main into add-summer-class」のボタンの上に警告が出て、解消するまで合流できません。直し方について公式は、テキストエディタ、コマンド、ほかの道具のどれでもよいと書いています。アプリの中の衝突の画面の文言は公式の説明に載っていないので、ここではコマンドで書きます。

  1. 「Current Branch」が add-summer-class になっているか見ます。
  2. ターミナル(文字で命令する画面)で website フォルダを開きます。
  3. git merge main を打ちます。
  4. menu.html をエディタで開きます。
  5. <<<<<<<、=======、>>>>>>> の3つの記号を消して、残す内容だけにします。
  6. 保存します。
  7. git add menu.html を打ちます。
  8. git commit --no-edit を打ちます。
  9. GitHub Desktopに戻って、「Push origin」を押します。

Gitは別に入れておく必要があります。実際に動かすと次のように出ます。やめたいときは git merge --abort で合流前に戻ります。

$ git merge main
Auto-merging menu.html
CONFLICT (content): Merge conflict in menu.html
Automatic merge failed; fix conflicts and then commit the result.
$ cat menu.html
<<<<<<< HEAD
<p>基本コース 5,800円</p>
<p>夏の教室 7,000円</p>
=======
<p>基本コース 5,600円</p>
>>>>>>> main
$ git status --short
UU menu.html
$ git merge --abort
$ git status --short

UU は両方が変えて止まっているファイルの印です。詳しい直し方は「コンフリクトの直し方:起きる理由と、解消の手順」に書きました。

取り消す:Undo、Revert、Discardの違い

似た名前が3つあります。迷ったら、GitHubへ送ったかどうかで決めます。

操作場所使う場面起きること
「Undo」「Changes」の左下コミットしたが、まだ送っていないコミットが消えて、変更は作業中に戻る
「Revert Changes in Commit」「History」でコミットを右クリック送ったあとに取り消す打ち消す新しいコミットが増える。元のコミットは残る
「Discard Changes」「Changes」の一覧のファイルのメニューコミットしていない変更を捨てる変更が消える。ごみ箱に日付の付いたファイルが残る

送る前:Undo

  1. 左の「Changes」を押します。
  2. 左下の「Undo」を押します。

送っていないコミットにしか使えません。変更そのものは残るので、直してもう一度コミットできます。コマンドなら次のものが近い操作です。

$ git log --oneline -2
99936ac 料金表を修正
0c0eb95 料金表を追加
$ git reset --soft HEAD~1
$ git log --oneline -2
0c0eb95 料金表を追加
$ git status --short
M  menu.html

送ったあと:Revert Changes in Commit

  1. 左の「History」を押します。
  2. 取り消したいコミットを右クリックします。
  3. 「Revert Changes in Commit」を押します。
  4. 上の「Push origin」を押します。

複数を戻すときは、新しいほうから順に戻します。順番を間違えると衝突が出ることがあります。

$ git revert --no-edit HEAD
[main 92a59e5] Revert "料金を6,000円に変更"
 Date: Sun Nov 8 01:07:50 2026 +0900
 1 file changed, 1 insertion(+), 1 deletion(-)
$ git log --oneline -3
92a59e5 Revert "料金を6,000円に変更"
352daa1 料金を6,000円に変更
99936ac 料金表を修正

コミット前:Discard Changes

  1. 「Changes」の一覧で、捨てるファイルを選びます。
  2. ファイルのメニューから「Discard Changes」を押します。
  3. 「Confirm Discard Changes」の窓で、対象のファイルを見ます。
  4. 窓の「Discard Changes」を押します。

「Prompts」の設定で、破壊的な操作の確認を切り替えられます。「Discard Changes」の確認が含まれるかは、公式の説明に書かれていません。ごみ箱を空にする前なら、そこから取り戻せます。コマンドの git restore にはこの逃げ道がありません。Gitの履歴にも残らないので、捨てる前に差分を読みます。

複数のコミットをまとめて戻す「Reset to commit」も「History」の右クリックにあります。送っていないコミットの範囲でだけ使えます。途中で別の作業に移りたいだけなら、捨てずに「Stash All Changes」で一時的にしまいます。戻すときは「Stashed Changes」から「Restore」です。

送る前は Undo、送ったあとは Revert、コミット前の変更は Discard で戻す
送る前は Undo、送ったあとは Revert、コミット前の変更は Discard で戻す

できないことと、その代わり

できないことその代わり
プルリクエストへのコメント、レビュー、マージブラウザで行う。コマンドなら gh pr review、gh pr merge
誤って送った秘密を履歴から消すgit filter-repo と force push。「APIキーやパスワードをGitHubにpushしてしまったときの対応」へ
履歴の細かい操作を全部ボタンで済ませるgit reset --hard や git reflog などは git で打つ。外注エンジニアBに頼む
コマンドとしてGitを使うGitを別に入れる
Linuxで使うVS Codeなど別の道具を使う
保護された枝へのforce push、枝の削除枝の保護を決めている管理者に相談する

gh はGitHub CLI(GitHubの操作をコマンドでする道具)です。GitHub DesktopとGit、gh は同じリポジトリに混ぜて使えます。Sourcetreeに乗り換えるときも同じフォルダをそのまま使えます。枝の図を重視するなら「Sourcetreeの使い方:画面の読み方とコミット・プッシュ・枝の操作」を参考にしてください。

よく詰まるところ

症状原因直し方
「Commit to main」が押せない「Summary」が空、または全部のチェックが外れているメッセージを書き、入れるファイルにチェックを付ける
コミットしたのにGitHubで見えない手元に記録しただけで、送っていない「Push origin」を押す
ログ(「Help」の「Show Logs」)に Error: Bad credentials や (empty token) と出る認証が切れているサインアウトして、もう一度サインインする
repository ... not found に近い文言が出るそのリポジトリの権限が無いOrganizationの権限を管理している人に頼む
Permission denied (publickey). と出るSSHの鍵が無いか、無効公式によるとGitHub DesktopはHTTPSで繋ぐ。リモートのURLをHTTPSに変える
「New Commits on Remote」と出るBが先に送っている「Fetch」を押してから「Pull origin」で取り込み、そのあと送る
コミットのときに保護された枝の警告が出るmain が直接の変更を禁じる設定枝を切り替えて、そちらへコミットする
枝を作ろうとすると警告が出て作れないルールで枝の名前が決められている決まった形の名前にする
枝が削除できない開いたプルリクエストに紐付いている先にプルリクエストを閉じるかマージする
エディタが開かない既定のエディタが未設定、または起動中に新しく入れた「Integrations」の「External Editor」で選ぶ。入れたばかりならアプリを開き直す

次に読む

  • GitHub Desktop・Sourcetree・VS Codeの使い方と選び方
  • プルリクエストとは:作り方・レビュー・マージの流れ
  • git add・commit・pushの違い:保存して送るまでの流れ
  • Sourcetreeの使い方:画面の読み方とコミット・プッシュ・枝の操作

あわせて読む