GitHubをはじめよう

第7章

提案して取り込む

枝の上で作ったものを、いきなり本流へ入れるのではなく、いったん「こう変えたいです」と提案してから入れます。 これが Pull Request です。ひとりで使っていても、入れる前に自分の変更を一覧で見直せるので、 間違いに気づけます。ターミナルと AI エージェントはブラウザで GitHub の画面から、VS Code は第3章で入れた 拡張機能で VS Code の画面から、同じ提案を出します。

この章が終わると
自分の変更を Pull Request として出し、merge できる状態
用意するもの
第6章で作った枝(この章では add-usage と呼びます)。 その枝に、README を直した記録が1つある状態から始めます。

この章の進め方を選んでください

同じことを3つのやり方で説明します。どれを選んでも、できあがるものは同じです。 あとから何度でも変えられます。

ターミナル:黒い画面に命令を打ちます。遠回りに見えますが、Git が何をしているかがそのまま見えるので、あとで困ったときに自分で調べられるようになります。

VS Code:エディタ(VS Code)の画面で、ボタンを押して進めます。コマンドを覚えなくても同じことができます。中で動いているのは、ターミナルで打つのと同じ Git です。

AI エージェント:やりたいことを日本語で伝えて、AI に代わりにやってもらいます。ここでは Claude Code を例にしますが、載せている指示文は他のエージェントでもほとんどそのまま使えます。

下にスクロールすると、手順が1つずつ再生されます。見逃したら、スクロールを戻せば同じところが巻き戻ります。 ターミナルと AI エージェントは、前半(枝を GitHub へ送るところ)だけが分かれ、後半の Pull Request はブラウザの同じ画面です。 VS Code は最後まで VS Code の中で進めます。

ターミナルで進める

  1. 01 / 12

    第6章の続きです。add-usage という枝で作業したところから始めます。

    ターミナルを開いて、第3章で持ってきたフォルダーにいる状態です。

    ~/Documents/hello-github
  2. 02 / 12

    いまどこにいるかを確かめます。add-usage にいて、直したところは残っていません。

    第4章のときと違い、「up to date」の行が出ません。この枝はまだ GitHub 側に無く、比べる相手がいないからです。

    ~/Documents/hello-github
  3. 03 / 12

    記録を見ます。第6章で作った記録が一番上にあります。

    左の英数字は環境ごとに違います。同じ手順をなぞっても、同じ文字列にはなりません。

    ~/Documents/hello-github
  4. 04 / 12

    この枝を GitHub へ送ります。-u は「この枝の送り先はここ」と覚えさせる印です。

    次からは git push だけで送れます。送り先の名前 origin は第3章で出てきたものと同じです。

    ~/Documents/hello-github
  5. 05 / 12

    ブラウザで GitHub のリポジトリを開きます。送った直後は、黄色い帯が出ています。

    この帯は枝を送ってからしばらくのあいだ出ます。出ていなくても、Pull requests タブから同じことができます。

    https://github.com/practice-learner/hello-github
  6. 06 / 12

    Compare & pull request を押します。提案を作る画面に変わります。

    Pull Request は「この枝の変更を、こっちの枝へ入れてください」という提案です。出しただけでは何も変わりません。

    https://github.com/practice-learner/hello-github/compare/main...add-usage
  7. 07 / 12

    base が main、compare が add-usage になっていることを確かめます。Able to merge と出ていれば、そのまま入れられます。

    base が「入れる先」、compare が「入れたいもの」です。ここを取り違えると、逆向きの提案になります。

    https://github.com/practice-learner/hello-github/compare/main...add-usage
  8. 08 / 12

    タイトルを書きます。何をしたのかが1行で分かるように書きます。

    下の欄には「なぜそうしたか」を書きます。空のままでも出せますが、読む人(あとの自分)のために1行でも書いておくと違います。

    https://github.com/practice-learner/hello-github/compare/main...add-usage
  9. 09 / 12

    Create pull request を押します。提案ができました。

    #1 という番号が付きます。この番号で、あとから何度でも呼び出せます。

    https://github.com/practice-learner/hello-github/pull/1
  10. 10 / 12

    Files changed を押して、何が変わるのかを自分の目で見ます。

    緑の行が増えた行です。ひとりで使っているときも、ここを見る癖をつけると間違いに気づけます。

    https://github.com/practice-learner/hello-github/pull/1
  11. 11 / 12

    Conversation に戻り、緑の Merge pull request を押します。

    押すと確認の欄が出るので、続けて Confirm merge を押します。既定は Create a merge commit(そのまま記録を足す)です。

    https://github.com/practice-learner/hello-github/pull/1
  12. 12 / 12

    取り込まれました。Delete branch を押して、役目の終わった add-usage を片づけます。

    消しても記録は残ります。押し間違えても Restore branch で戻せます。手元の枝はまだ残っているので、それは第8章で片づけます。

    https://github.com/practice-learner/hello-github/pull/1

VS Codeで進める

  1. 01 / 10

    第6章の続きです。いまは main にいて、README.md に「使い方」の節はありません。

    提案するのは、第6章で add-usage の枝に積んだ記録です。まずその枝へ移ります。

    hello-github
  2. 02 / 10

    一番下の帯の main を押して、枝の一覧を出します。

    hello-github
  3. 03 / 10

    add-usage を選びます。README.md に「使い方」の節が戻りました。

    Pull Request は、いま立っている枝から作ります。

    hello-github
  4. 04 / 10

    「変更」節の見出しにマウスを乗せます。✓ の右の、枝の印に + が付いたボタンが「Create Pull Request」です。

    このボタンは、第3章で入れた GitHub Pull Requests 拡張が足したものです。出ていないときは、左端の GitHub のアイコンを押して、出てくる Sign in から GitHub にサインインします。

    hello-github
  5. 05 / 10

    「Create Pull Request」を押します。左に Pull Request を作る欄が出ます。

    Base が「入れる先」(main)、Merge が「入れたいもの」(add-usage)です。ブラウザで作るときの base と compare にあたります。Title には、枝に積んだ記録のメッセージが最初から入っています。

    hello-github
  6. 06 / 10

    下の Description に、なぜそうしたかを1行書きます。

    空のままでも出せますが、読む人(あとの自分)のために1行でも書いておくと違います。拡張の画面は英語のままです(日本語の訳が用意されていないため)。

    hello-github
  7. 07 / 10

    Create を押します。提案ができて、右に Pull Request の画面が開きました。

    #1 という番号が付きます。Pull Request は「この枝の変更を、こっちの枝へ入れてください」という提案で、出しただけでは何も変わりません。

    hello-github
  8. 08 / 10

    Merge Pull Request を押します。取り込んだときに残す記録の、題名と説明を確かめる欄が出ます。

    using method の Create Merge Commit は「取り込んだことを、記録を1つ足して残す」という意味です。ブラウザで取り込むときの既定と同じです。

    hello-github
  9. 09 / 10

    Create Merge Commit を押します。取り込まれて、札が Merged に変わりました。

    取り込まれたのは GitHub 側の main です。手元の main はまだ古いままで、それを受け取るのが第8章です。

    hello-github
  10. 10 / 10

    Delete Branch... は、役目の終わった add-usage を片づけるボタンです。ここでは押さずに、第8章で使います。

    押すと、GitHub 側の枝と手元の枝のどちらを消すかを聞かれ、あわせて GitHub の様子も聞きに行きます。手元へ受け取って中身を確かめてから消すほうが安全なので、第8章で受け取ってから押します。ここまでが第7章です。

    hello-github

AI エージェントで進める

  1. 01 / 12

    第6章の続きです。add-usage の枝で、エージェントを起動したところから始めます。

    エージェントは、いまいるフォルダーと、いまいる枝を見て動きます。

    ~/Documents/hello-github
  2. 02 / 12

    いまの枝を GitHub へ送ってほしい、と頼みます。

    まとめて頼むときほど、次に出てくる確認をよく読んでください。読まずに許可するのがいちばん危ない使い方です。

    ~/Documents/hello-github
  3. 03 / 12

    エージェントは、実行する前に打つコマンドを見せて許可を求めてきます。

    -u が付いているか、送り先が origin になっているかを見ます。違っていたら断って言い直します。

    ~/Documents/hello-github
  4. 04 / 12

    内容に問題がなければ許可します。枝が GitHub 側にもできました。

    new branch と出ているのが、GitHub 側に枝ができたという意味です。

    ~/Documents/hello-github
  5. 05 / 12

    ブラウザで GitHub のリポジトリを開きます。送った直後は、黄色い帯が出ています。

    この帯は枝を送ってからしばらくのあいだ出ます。出ていなくても、Pull requests タブから同じことができます。

    https://github.com/practice-learner/hello-github
  6. 06 / 12

    Compare & pull request を押します。提案を作る画面に変わります。

    Pull Request は「この枝の変更を、こっちの枝へ入れてください」という提案です。出しただけでは何も変わりません。

    https://github.com/practice-learner/hello-github/compare/main...add-usage
  7. 07 / 12

    base が main、compare が add-usage になっていることを確かめます。Able to merge と出ていれば、そのまま入れられます。

    base が「入れる先」、compare が「入れたいもの」です。ここを取り違えると、逆向きの提案になります。

    https://github.com/practice-learner/hello-github/compare/main...add-usage
  8. 08 / 12

    タイトルを書きます。何をしたのかが1行で分かるように書きます。

    下の欄には「なぜそうしたか」を書きます。空のままでも出せますが、読む人(あとの自分)のために1行でも書いておくと違います。

    https://github.com/practice-learner/hello-github/compare/main...add-usage
  9. 09 / 12

    Create pull request を押します。提案ができました。

    #1 という番号が付きます。この番号で、あとから何度でも呼び出せます。

    https://github.com/practice-learner/hello-github/pull/1
  10. 10 / 12

    Files changed を押して、何が変わるのかを自分の目で見ます。

    緑の行が増えた行です。ひとりで使っているときも、ここを見る癖をつけると間違いに気づけます。

    https://github.com/practice-learner/hello-github/pull/1
  11. 11 / 12

    Conversation に戻り、緑の Merge pull request を押します。

    押すと確認の欄が出るので、続けて Confirm merge を押します。既定は Create a merge commit(そのまま記録を足す)です。

    https://github.com/practice-learner/hello-github/pull/1
  12. 12 / 12

    取り込まれました。Delete branch を押して、役目の終わった add-usage を片づけます。

    消しても記録は残ります。押し間違えても Restore branch で戻せます。手元の枝はまだ残っているので、それは第8章で片づけます。

    https://github.com/practice-learner/hello-github/pull/1

この章で覚えること

  1. 1

    送るのと、提案するのは別のことです。 push で枝が GitHub 側にできますが、本流には何も入っていません。 入れてよいかを決めるのが Pull Request です。

  2. 2

    base と compare を取り違えないこと。 base が入れる先、compare が入れたいものです(VS Code の拡張では Base と Merge)。逆にすると、まったく別の提案になります。

  3. 3

    取り込んでも、手元の枝はそのまま残ります。 ブラウザの Delete branch で消えるのは GitHub 側の枝だけです。手元の枝を片づけるのは第8章です (VS Code では、GitHub 側の枝も第8章でまとめて片づけます)。

公式の説明は GitHub のプルリクエストの作成プルリクエストのマージにあります。VS Code で使っている拡張機能の説明はGitHub Pull Requests 拡張機能にあります。

次の章他の人の変更を受け取る自分以外が入れた変更を、手元へ取り込む。

前の章へ戻る/章の一覧へ