GitHubをはじめよう

第6章

枝を分けて試す

ここまでは、記録を1本の線の上に積んできました。うまくいくか分からないことを試したいとき、 その線に直接書き足すと、失敗したときに戻すのが面倒です。Git には線を分けて別々に進めるしくみがあります。これを枝(branch)と呼びます。 この章では枝を1つ作り、そこで書き足してから元へ戻り、元が何も変わっていないことを自分の目で確かめます。

この章でやること
新しい枝(add-usage)を作って README.md に節を書き足し、記録します。そのあと main へ戻り、main の中身が変わっていないことを確かめます。
この章が終わると
枝(branch)を作って書き足し、元の枝へ戻って中身が変わっていないことを確かめられる状態
必要なもの
第5章で GitHub へ送り終わった hello-github のフォルダー。新しく入れるものはありません。
かかる時間の目安
15分ほど(自分の手で進めながら)
前の章で済ませたこと
第4章で記録し、第5章で GitHub へ送りました(手元と GitHub の中身がそろっています)。 ターミナルと AI エージェントの人は、開いたら cd ~/Documents/hello-github で中に入ります。 VS Code の人は、この章の最後で枝を GitHub にも作ります(ターミナルと AI エージェントは第7章の最初に送ります)。

この章で出てくる言葉

分かる言葉は読み飛ばして構いません。途中で分からない言葉が出たら、ここに戻ってきてください。前の章で説明した言葉は、その章の冒頭(パソコンの基本の言葉はトップページ)にあります。

発行
VS Code で、手元にしかない枝を GitHub 側にも作ること。ターミナルで枝を初めて送る git push -u と同じです。

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

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

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

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

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

下にスクロールすると、手順が1つずつ再生されます。見逃したら、スクロールを戻せば同じところが巻き戻ります。 この章で作る枝は add-usage という名前にします。 次の第7章で、この枝を本流へ取り込むところまで進みます。

ターミナルで進める

  1. 01 / 11

    ターミナルを開き、hello-github のフォルダーに入ります。

    cd ~/Documents/hello-github と打って Enter。第5章で GitHub へ送り終わった状態から始めます。

    うまくいかないとき:見つからないと出たら、打ち間違いを見直します(Windows で cd ~ に置いた人は cd ~/hello-github)。

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

    いまある枝の一覧を見ます。main が1つだけで、* が付いています。

    git branch

    * は「いま立っている枝」の印です。枝とは、記録を積んでいく線のことだと思ってください。

    うまくいかないとき:main のほかに add-usage があるときは、前に作っています。次の手順は -c を付けずに git switch add-usage と打って移ります。

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

    新しい枝 add-usage を作って、そこへ移ります。-c は「作ってから移る」という指定です。

    git switch -c add-usage

    名前は英数字とハイフンで、何をする枝かが分かるものにします。日本語も使えますが、避けたほうが無難です。

    うまくいかないとき:fatal: a branch named … already exists と出たら、同じ名前の枝がもうあります。-c を付けずに git switch add-usage と打てば移れます。

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

    もう一度見ます。枝が2つになり、* が add-usage へ移っています。

    git branch

    この時点では、2つの枝の中身はまったく同じです。分かれるのはこれから書き足したぶんだけです。

    うまくいかないとき:* が main のままなら、移れていません。手順3の出力を見直して、git switch -c add-usage を打ち直します。

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

    README.md の最後に「## 使い方」の節を足して、保存します。

    エディターの開き方は第4章と同じです(Windows は notepad README.md、Mac は open -e README.md)。書いたら保存します。

    うまくいかないとき:「## 使い方」の ## は半角の記号で、見出しの印です。そのとおりに書きます。保存は Ctrl + S(Mac は command + S)。

    hello-github
  6. 06 / 11

    ターミナルに戻ります。いま書き足したぶんを、この枝に記録します。

    うまくいかないとき:ターミナルを閉じてしまったら、開き直して cd ~/Documents/hello-github と打ちます。枝は add-usage のままです。

    ~/Documents/hello-github
  7. 07 / 11

    記録します。-am は「すでに Git が見ているファイルを add してから記録する」指定です。

    git commit -am "使い方の節を足す"

    第4章の git add と git commit を1回で済ませています。新しく作ったファイルは -a では入らないので、そのときは git add が要ります。

    うまくいかないとき:nothing to commit と出たら、保存できていません。エディターで保存してから、もう一度打ちます。

    ~/Documents/hello-github
  8. 08 / 11

    ここからが山場です。元の main へ戻ってみます。

    git switch main

    うまくいかないとき:error: Your local changes … would be overwritten と出たら、記録していない変更があります。手順7の記録を済ませてから移ります。

    ~/Documents/hello-github
  9. 09 / 11

    README.md の中身を見ます。足したはずの「## 使い方」がありません。

    cat README.md

    cat は、ファイルの中身をそのまま画面に出す命令です。消えたのではなく、main の側にはまだ無いだけです。

    うまくいかないとき:見つからないという意味の文が出たら、いる場所が違います。cd ~/Documents/hello-github と打って入り直します。

    ~/Documents/hello-github
  10. 10 / 11

    もう一度 add-usage へ移ります。

    git switch add-usage

    枝を移ると、フォルダーの中のファイルがその枝の状態に入れ替わります。手で書き戻す必要はありません。

    うまくいかないとき:fatal: invalid reference と出たら、枝の名前の打ち間違いです。git branch と打って、名前を確かめます。

    ~/Documents/hello-github
  11. 11 / 11

    中身を見ると、足した節が戻っています。ここまでが第6章です。

    cat README.md

    同じフォルダーなのに中身が入れ替わります。これが「枝を分けて試す」ということです。この枝を GitHub へ送るのは、次の第7章です。

    うまくいかないとき:節が出ないときは、枝を移れていないか、手順7の記録ができていません。git branch で * の位置を確かめます。

    ~/Documents/hello-github

うまくいかないとき(手順ごと)

上の手順の番号と合わせて見てください。

  1. 01

    ターミナルを開き、hello-github のフォルダーに入ります。

    見つからないと出たら、打ち間違いを見直します(Windows で cd ~ に置いた人は cd ~/hello-github)。

  2. 02

    いまある枝の一覧を見ます。main が1つだけで、* が付いています。

    main のほかに add-usage があるときは、前に作っています。次の手順は -c を付けずに git switch add-usage と打って移ります。

  3. 03

    新しい枝 add-usage を作って、そこへ移ります。-c は「作ってから移る」という指定です。

    fatal: a branch named … already exists と出たら、同じ名前の枝がもうあります。-c を付けずに git switch add-usage と打てば移れます。

  4. 04

    もう一度見ます。枝が2つになり、* が add-usage へ移っています。

    * が main のままなら、移れていません。手順3の出力を見直して、git switch -c add-usage を打ち直します。

  5. 05

    README.md の最後に「## 使い方」の節を足して、保存します。

    「## 使い方」の ## は半角の記号で、見出しの印です。そのとおりに書きます。保存は Ctrl + S(Mac は command + S)。

  6. 06

    ターミナルに戻ります。いま書き足したぶんを、この枝に記録します。

    ターミナルを閉じてしまったら、開き直して cd ~/Documents/hello-github と打ちます。枝は add-usage のままです。

  7. 07

    記録します。-am は「すでに Git が見ているファイルを add してから記録する」指定です。

    nothing to commit と出たら、保存できていません。エディターで保存してから、もう一度打ちます。

  8. 08

    ここからが山場です。元の main へ戻ってみます。

    error: Your local changes … would be overwritten と出たら、記録していない変更があります。手順7の記録を済ませてから移ります。

  9. 09

    README.md の中身を見ます。足したはずの「## 使い方」がありません。

    見つからないという意味の文が出たら、いる場所が違います。cd ~/Documents/hello-github と打って入り直します。

  10. 10

    もう一度 add-usage へ移ります。

    fatal: invalid reference と出たら、枝の名前の打ち間違いです。git branch と打って、名前を確かめます。

  11. 11

    中身を見ると、足した節が戻っています。ここまでが第6章です。

    節が出ないときは、枝を移れていないか、手順7の記録ができていません。git branch で * の位置を確かめます。

VS Codeで進める

  1. 01 / 12

    第5章の続きです。一番下の帯の左に出ている main が、いま立っている枝です。

    枝(branch)は、記録を積んでいく線のことです。「グラフ」節の線は、いまは main の1本だけです。

    うまくいかないとき:VS Code を閉じていたら「ファイル」→「最近使用した項目を開く」で hello-github を開きます。帯が見えないときは、ウィンドウを広げます。

    hello-github
  2. 02 / 12

    帯の main を押します。上に、枝を選ぶ一覧が出ます。

    一覧には、いまある枝(main だけ)と、新しく枝を作る項目が並んでいます。

    うまくいかないとき:一覧が出ないときは、帯の main の文字をもう一度押します。閉じるときは Esc キーです。

    hello-github
  3. 03 / 12

    「新しいブランチの作成...」を選びます。名前を入れる欄に変わります。

    うまくいかないとき:違うものを選んだら、Esc キーで閉じて、手順2からやり直します。

    hello-github
  4. 04 / 12

    枝の名前を打ちます。ここでは add-usage にします。

    何をする枝かが分かる名前にします。英数字とハイフンで短く付けるのが一般的です。

    うまくいかないとき:枝の名前に空白は使えません。単語のあいだはハイフン(-)でつなぎます。日本語入力はオフにして打ちます。

    hello-github
  5. 05 / 12

    Enter を押すと枝ができて、そのまま移ります。帯が add-usage に変わりました。

    ボタンが「Branch の発行」になり、帯の右には雲の印が出ています。どちらも「この枝はまだ GitHub 側に無い」という意味です。グラフの橙の雲(origin/main)は、この枝の分かれ元です。

    うまくいかないとき:帯が main のままなら、名前を打ったあとに Enter を押せていません。手順2からやり直します。

    hello-github
  6. 06 / 12

    README.md に「## 使い方」の節を足して保存します。「変更」に出た README.md の行にマウスを乗せます。

    行の左の緑の印は「前の記録から増えた行」です。ここでは4行増えています。直したものがあるので、ボタンは「コミット」に戻りました。

    うまくいかないとき:「変更」に出ないときは、保存できていません。タブの名前の横に ● があれば、Ctrl + S(Mac は command + S)で保存します。

    hello-github
  7. 07 / 12

    第4章と同じように、行の右の + を押して「ステージされている変更」へ入れます。

    うまくいかないとき:間違えて入れたら、「ステージされている変更」の行の -(変更のステージング解除)で戻せます。

    hello-github
  8. 08 / 12

    上の欄に、何をしたかを短く書きます。

    欄の薄い字に出ていた枝の名前が add-usage になっていたのは、この枝に記録されるという意味です。

    うまくいかないとき:日本語入力をオンにして書きます。欄は、ソース管理のいちばん上の、薄い字の入った四角です。

    hello-github
  9. 09 / 12

    「✓ コミット」を押します。この記録は add-usage の側だけに積まれます。

    グラフの一番上に、いま作った記録が増えました。橙の雲(origin/main)は1つ下に残ったままです。ボタンはまた「Branch の発行」に戻りました。

    うまくいかないとき:ステージされた変更が無いという案内が出たら、+ を押し忘れています。案内を閉じて、手順7からやり直します。

    hello-github
  10. 10 / 12

    「Branch の発行」を押します。この枝が GitHub 側にもできます。

    ターミナルで進める場合に第7章の最初で打つ git push -u origin <枝の名前> と同じことです。一番上の行に紫の雲(GitHub 側の add-usage)が付き、帯の雲の印は同期の印に戻りました。

    うまくいかないとき:GitHub へのサインインを求められたら「許可」を押し、ブラウザで許可します(第3章の「GitHub にサインインを求められたら」)。

    hello-github
  11. 11 / 12

    ここからが山場です。帯の add-usage を押して、もう一度枝の一覧を出します。

    今度は main と add-usage の2つが並んでいます。

    うまくいかないとき:一覧に add-usage が無いときは、手順5で枝を作れていません。手順2からやり直します。

    hello-github
  12. 12 / 12

    main を選びます。README.md から「## 使い方」の節が消えました。ここまでが第6章です。

    消えたのではなく、main の側にはまだ無いだけです。add-usage を選び直せば、また出てきます。グラフも main の線だけに戻りました。

    うまくいかないとき:移れないという知らせが出たら、記録していない変更があります。手順7〜9で記録してから、もう一度 main を選びます。

    hello-github

うまくいかないとき(手順ごと)

上の手順の番号と合わせて見てください。

  1. 01

    第5章の続きです。一番下の帯の左に出ている main が、いま立っている枝です。

    VS Code を閉じていたら「ファイル」→「最近使用した項目を開く」で hello-github を開きます。帯が見えないときは、ウィンドウを広げます。

  2. 02

    帯の main を押します。上に、枝を選ぶ一覧が出ます。

    一覧が出ないときは、帯の main の文字をもう一度押します。閉じるときは Esc キーです。

  3. 03

    「新しいブランチの作成...」を選びます。名前を入れる欄に変わります。

    違うものを選んだら、Esc キーで閉じて、手順2からやり直します。

  4. 04

    枝の名前を打ちます。ここでは add-usage にします。

    枝の名前に空白は使えません。単語のあいだはハイフン(-)でつなぎます。日本語入力はオフにして打ちます。

  5. 05

    Enter を押すと枝ができて、そのまま移ります。帯が add-usage に変わりました。

    帯が main のままなら、名前を打ったあとに Enter を押せていません。手順2からやり直します。

  6. 06

    README.md に「## 使い方」の節を足して保存します。「変更」に出た README.md の行にマウスを乗せます。

    「変更」に出ないときは、保存できていません。タブの名前の横に ● があれば、Ctrl + S(Mac は command + S)で保存します。

  7. 07

    第4章と同じように、行の右の + を押して「ステージされている変更」へ入れます。

    間違えて入れたら、「ステージされている変更」の行の -(変更のステージング解除)で戻せます。

  8. 08

    上の欄に、何をしたかを短く書きます。

    日本語入力をオンにして書きます。欄は、ソース管理のいちばん上の、薄い字の入った四角です。

  9. 09

    「✓ コミット」を押します。この記録は add-usage の側だけに積まれます。

    ステージされた変更が無いという案内が出たら、+ を押し忘れています。案内を閉じて、手順7からやり直します。

  10. 10

    「Branch の発行」を押します。この枝が GitHub 側にもできます。

    GitHub へのサインインを求められたら「許可」を押し、ブラウザで許可します(第3章の「GitHub にサインインを求められたら」)。

  11. 11

    ここからが山場です。帯の add-usage を押して、もう一度枝の一覧を出します。

    一覧に add-usage が無いときは、手順5で枝を作れていません。手順2からやり直します。

  12. 12

    main を選びます。README.md から「## 使い方」の節が消えました。ここまでが第6章です。

    移れないという知らせが出たら、記録していない変更があります。手順7〜9で記録してから、もう一度 main を選びます。

AI エージェントで進める

  1. 01 / 10

    ターミナルを開き、hello-github のフォルダーに入ります。

    cd ~/Documents/hello-github と打って Enter。前の章の Claude Code が開いたままなら、次の手順は飛ばして構いません。

    うまくいかないとき:見つからないと出たら、打ち間違いを見直します(Windows で cd ~ に置いた人は cd ~/hello-github)。

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

    エージェントを起動します。

    claude

    うまくいかないとき:claude が見つからないという意味の文が出たら、ターミナルを開き直してから打ちます(第3章の「準備」で入れたもの)。

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

    枝を作って移るところを頼みます。名前は自分で決めて伝えます。

    名前を任せると、その場かぎりの名前が付くことがあります。自分で決めたほうが後で探しやすいです。

    うまくいかないとき:日本語入力をオンにして打ちます。変換を決める Enter のあと、もう一度 Enter を押すと送られます。

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

    エージェントは、実行する前に何をするかを見せて、許可を求めてきます。

    うまくいかないとき:本物の Claude Code では、確認は英語で出ます。1 の Yes が選ばれていれば Enter で許可、断るときは Esc キーです。

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

    許可すると、枝ができてそこへ移ります。

    ここで出ている git switch -c が、ターミナルで進める場合に打つコマンドと同じものです。

    うまくいかないとき:同じ名前の枝がもうあるという英語が出たら、前に作っています。「add-usage に移って」と頼み直します。

    ~/Documents/hello-github
  6. 06 / 10

    書き足しと記録をまとめて頼みます。

    うまくいかないとき:「## 使い方」の節を足して、のように具体的に書くと、思ったとおりに直してもらえます。

    ~/Documents/hello-github
  7. 07 / 10

    エージェントは、直す中身を見せてから許可を求めてきます。ここで必ず読みます。

    うまくいかないとき:直す中身が思っていたのと違うときは、Esc キーで断り、どう直してほしいかを日本語で送ります。

    ~/Documents/hello-github
  8. 08 / 10

    許可すると、書き足して記録まで済みます。

    うまくいかないとき:記録できたか分からないときは、「いまの枝と、最後の記録を見せて」と頼んで確かめます。

    ~/Documents/hello-github
  9. 09 / 10

    ここからが山場です。main に戻したときの中身を見せてもらいます。

    うまくいかないとき:記録していない変更があって移れないと言われたら、「さっきの変更を記録してから main に戻って」と頼みます。

    ~/Documents/hello-github
  10. 10 / 10

    main の側には「## 使い方」がありません。ここまでが第6章です。

    消えたのではなく、main の側にはまだ無いだけです。add-usage へ戻せば、また出てきます。この枝を GitHub へ送るのは、次の第7章です。

    うまくいかないとき:節がまだ見えるときは、main に移れていません。「いまどの枝にいる?」と聞いて確かめます。

    ~/Documents/hello-github

うまくいかないとき(手順ごと)

上の手順の番号と合わせて見てください。

  1. 01

    ターミナルを開き、hello-github のフォルダーに入ります。

    見つからないと出たら、打ち間違いを見直します(Windows で cd ~ に置いた人は cd ~/hello-github)。

  2. 02

    エージェントを起動します。

    claude が見つからないという意味の文が出たら、ターミナルを開き直してから打ちます(第3章の「準備」で入れたもの)。

  3. 03

    枝を作って移るところを頼みます。名前は自分で決めて伝えます。

    日本語入力をオンにして打ちます。変換を決める Enter のあと、もう一度 Enter を押すと送られます。

  4. 04

    エージェントは、実行する前に何をするかを見せて、許可を求めてきます。

    本物の Claude Code では、確認は英語で出ます。1 の Yes が選ばれていれば Enter で許可、断るときは Esc キーです。

  5. 05

    許可すると、枝ができてそこへ移ります。

    同じ名前の枝がもうあるという英語が出たら、前に作っています。「add-usage に移って」と頼み直します。

  6. 06

    書き足しと記録をまとめて頼みます。

    「## 使い方」の節を足して、のように具体的に書くと、思ったとおりに直してもらえます。

  7. 07

    エージェントは、直す中身を見せてから許可を求めてきます。ここで必ず読みます。

    直す中身が思っていたのと違うときは、Esc キーで断り、どう直してほしいかを日本語で送ります。

  8. 08

    許可すると、書き足して記録まで済みます。

    記録できたか分からないときは、「いまの枝と、最後の記録を見せて」と頼んで確かめます。

  9. 09

    ここからが山場です。main に戻したときの中身を見せてもらいます。

    記録していない変更があって移れないと言われたら、「さっきの変更を記録してから main に戻って」と頼みます。

  10. 10

    main の側には「## 使い方」がありません。ここまでが第6章です。

    節がまだ見えるときは、main に移れていません。「いまどの枝にいる?」と聞いて確かめます。

この章で覚えること

  1. 1

    枝を移ると、フォルダーの中身が入れ替わります。 同じフォルダーを見ているのに、ファイルの中身がその枝の状態になります。 手で書き戻す必要はありませんし、消えたわけでもありません。

  2. 2

    元(main)は勝手に変わりません。 枝で何をしても、移って確かめるまで main はそのままです。 だから、うまくいくか分からないことは枝でやります。

  3. 3

    枝を移る前に、記録しておきます。 記録していない変更があると、Git は枝を移らせてくれません(移ると中身が入れ替わって、変更が消えてしまうため)。 移れないと言われたら、まず記録します。

公式の説明は GitHub のGitHub フローと、VS Code のBranches and worktreesにあります。

次の章提案して取り込む変更を「入れてください」と提案し、中身を確かめてから本流へ入れる。

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