この章では、GitHub のリポジトリを別のフォルダーにまるごとコピー(クローン)し、片方でプッシュしたコミットを、もう片方に取り込みます(プル)。GitHub の画面で直した変更も、同じようにプルで取り込みます。
この章で学ぶこと
- GitHub のリポジトリをクローンする方法
- GitHub にあるコミットを、自分のリポジトリに取り込む方法(プル)
- GitHub の画面でファイルを直す方法
- フェッチとプルの違い
7.1 この章で行うこと
ほかの人と一緒に作業するときは、ほかの人がプッシュしたコミットを、自分のリポジトリに取り込む必要があります。この章では、1人で次の2つの方法を使って、「ほかの人の変更」を作り、取り込む練習をします。
- GitHub のリポジトリを別のフォルダーにクローンし、そこで直してプッシュする(別のパソコンで作業した場合と同じ)
- GitHub の画面でファイルを直す(ほかの人がプッシュした場合と同じ)

図7-1 クローンしたリポジトリで直した変更を、元のリポジトリにプルする
7.2 クローンする
-
ブラウザで GitHub の
html-practiceのリポジトリの画面を開きます。緑の「Code」のボタンをクリックし、「Local」のタブの「HTTPS」の URL を、右のコピーのボタンでコピーします。 -
エクスプローラーで「ドキュメント」フォルダーを開き、何もない所を右クリックして、「Git クローン」を選びます(Windows 11 では「その他のオプションを確認」をクリックしてから選びます)。
-
クローンの画面で、次の表のとおりに入力し、「OK」をクリックします。
項目 入力する値 URL コピーした URL( https://github.com/ユーザー名/html-practice.git)ディレクトリ C:\Users\ユーザー名\Documents\html-practice-2 -
結果の画面に「成功」と表示されたら、「閉じる」をクリックします。
-
「ドキュメント」フォルダーに
html-practice-2フォルダーができ、中にgitフォルダーなど、GitHub にあるファイルがすべて入っていることを確かめます。 -
html-practice-2フォルダーを右クリックして TortoiseGit → ログを表示 を選び、元のリポジトリと同じ履歴があることを確かめます。
【再確認】ディレクトリの名前を html-practice-2 にする
ディレクトリの欄には、最初、URL から作られた html-practice という名前が入ります。HTML入門を学んでいない人は、元のリポジトリが「ドキュメント」の html-practice なので、そのままでは同じ名前になってしまいます。どちらの人も、必ず html-practice-2 に書き換えてください。
クローンしたリポジトリには、ファイルだけでなく、これまでのコミット(履歴)もすべて入っています。また、クローン元の GitHub のリポジトリが、origin という名前のリモートとして自動で登録されています。第6章で行ったリモートの登録は要りません。
7.3 クローンした方で直してプッシュする
クローンしたリポジトリ(html-practice-2)を、別のパソコンのリポジトリとして使います。
-
html-practice-2の中のgit/list.htmlを開き、4人目(田中 美咲)の行の後ろに、次の緑の行を書き足して保存します。元のリポジトリのファイルと間違えないように、エクスプローラーのアドレスバーで、html-practice-2の中であることを確かめてください。
<tr>
<td>4</td>
<td>田中 美咲</td>
<td>開発部</td>
</tr>
<tr>
<td>5</td>
<td>佐藤 健太</td>
<td>営業部</td>
</tr>
</table>
-
html-practice-2フォルダーを右クリックし、「Git コミット -> "main"」で、メッセージを社員一覧に佐藤 健太を追加にしてコミットします。 - 続けてプッシュします(コミットの結果の画面の「プッシュ」、または TortoiseGit → プッシュ)。
これで GitHub には、元のリポジトリに無いコミット「社員一覧に佐藤 健太を追加」があります。
7.4 元のリポジトリにプルする
-
元のリポジトリ(
webappまたは「ドキュメント」のhtml-practice)のgit/list.htmlを開き、佐藤 健太の行がまだ無いことを確かめて、閉じます。 -
元のリポジトリのフォルダーを右クリックし、TortoiseGit → プル を選びます。
-
プルの画面で、「リモート」が
origin、「リモートブランチ」がmainになっていることを確かめて、「OK」をクリックします。 -
結果の画面に「成功」と表示されたら、「閉じる」をクリックします。
-
元のリポジトリの
git/list.htmlを開き、佐藤 健太の行が入ったことを確かめます。ログの画面にも「社員一覧に佐藤 健太を追加」のコミットがあることを確かめます。
【便利な使い方】作業を始める前にプルする
ほかの人と同じリポジトリで作業するときは、作業を始める前にプルして、最新の状態にしてから直し始めます。古い状態のまま直すと、ほかの人の変更と同じ所を直してしまい、第9章で学ぶコンフリクトが起きやすくなります。
7.5 GitHub の画面で直した変更をプルする
GitHub の画面でも、ファイルを直してコミットできます。ここでは、ほかの人がプッシュした変更の代わりに、GitHub の画面で直します。
-
ブラウザで GitHub の
html-practiceのリポジトリの画面を開き、git→list.htmlの順にクリックします。 -
ファイルの中身の右上にある、鉛筆のアイコン(Edit this file)をクリックします。
-
5人目(佐藤 健太)の行の後ろに、次の緑の行を書き足します。
<tr>
<td>5</td>
<td>佐藤 健太</td>
<td>営業部</td>
</tr>
<tr>
<td>6</td>
<td>鈴木 花子</td>
<td>総務部</td>
</tr>
</table>
-
右上の「Commit changes...」をクリックします。
-
表示された画面の「Commit message」の欄を
社員一覧に鈴木 花子を追加に書き換え、「Commit directly to the main branch」(main ブランチに直接コミットする)が選ばれていることを確かめて、「Commit changes」をクリックします。
図7-6 Commit changes の画面(赤枠:メッセージと Commit directly to the main branch) -
元のリポジトリのフォルダーを右クリックし、TortoiseGit → プル で、7.4 と同じようにプルします。
-
元のリポジトリの
git/list.htmlに、鈴木 花子の行が入ったことを確かめます。
【知識メモ】クローンしたリポジトリは、この後使わない
html-practice-2 は、この章の練習のためにクローンしたものです。第8章からは、元のリポジトリだけを使います。html-practice-2 フォルダーは、フォルダーごと消してかまいません。消しても、元のリポジトリと GitHub のリポジトリには影響しません。
7.6 解説:フェッチとプル
GitHub からコミットを取ってくる操作には、フェッチとプルの2つがあります。
| 操作 | すること |
|---|---|
| フェッチ(fetch) | GitHub にあるコミットを取ってくるだけ。作業フォルダーのファイルは変わらない |
| プル(pull) | フェッチしてから、取ってきたコミットを今のブランチに取り込む(マージする)。作業フォルダーのファイルが新しくなる |
フェッチは、ほかの人がどんなコミットをプッシュしたかを、取り込む前に確かめたいときに使います(TortoiseGit → フェッチ)。取ってきたコミットは、ログの画面で見られます。ふだんは、プルを使えば十分です。プルの中で行われる「マージ」は、第9章で詳しく学びます。
7.7 うまくいかないときは
| 症状 | 考えられる原因と対処 |
|---|---|
| クローンで「already exists and is not an empty directory」と表示される | 同じ名前のフォルダーがすでにあります。ディレクトリの名前を html-practice-2 にしたかを確かめてください。 |
| プルしたのに、ファイルが変わらない | エディターでファイルを開いたままになっています。ファイルを開き直してください。プルの結果の画面に「Already up to date」(すでに最新)と表示された場合は、GitHub にまだコミットがありません。プッシュしたか、GitHub の画面でコミットしたかを確かめます。 |
| プッシュで「rejected」と表示されて失敗する | GitHub に、自分のリポジトリに無いコミットがあります。先にプルしてから、もう一度プッシュしてください。 |
| プルで、ローカルの変更が上書きされると表示されて失敗する | まだコミットしていない変更があり、プルで取り込むコミットと同じファイルを変えています。変更をコミットしてからプルします。コミットしたくない変更の場合の方法は、第9章で学びます。 |
そのほかのエラーは、付録B「よくあるエラーと対処法」を見てください。
7.8 まとめと確認問題
まとめ
- 「Git クローン」で、GitHub のリポジトリを履歴ごとコピーする。クローン元は
originとして自動で登録される - TortoiseGit →「プル」で、GitHub にあるコミットを今のブランチに取り込む
- GitHub の画面では、鉛筆のアイコンでファイルを直し、「Commit changes」でコミットできる
- フェッチは取ってくるだけ、プルは取ってきて取り込む。作業を始める前にプルする
確認問題
問1 クローンしたリポジトリで、第6章のようにリモートを登録する必要はありますか。
解答を見る
ありません。クローン元の GitHub のリポジトリが、origin という名前で自動で登録されるためです。
問2 フェッチとプルの違いを答えてください。
解答を見る
フェッチは、GitHub にあるコミットを取ってくるだけで、作業フォルダーのファイルは変わりません。プルは、フェッチしてから、取ってきたコミットを今のブランチに取り込むので、作業フォルダーのファイルが新しくなります。
問3 ほかの人と同じリポジトリで作業するとき、作業を始める前にプルするのはなぜですか。
解答を見る
古い状態のまま直すと、ほかの人の変更と同じ所を直してしまい、コンフリクトが起きやすくなるためです。
前へ
第6章 GitHub にあげる(プッシュ)(TortoiseGit)



