Git は、ファイルの変更を記録し、いつでも前の状態に戻したり、ほかの人と同じファイルを分担して直したりするための道具です。この章では、ツールを使い始める前に、Git の考え方と、この教材で使う言葉を学びます。
この章で学ぶこと
- バージョン管理が必要な理由
- リポジトリ・コミット・履歴など、Git の基本の言葉
- 自分のパソコンのリポジトリと、GitHub のリポジトリの関係(プッシュ・プル・クローン)
- ブランチの考え方
- TortoiseGit と GitHub Desktop の違いと、どちらを選ぶか
1.1 バージョン管理とは
ファイルを直していると、「昨日の状態に戻したい」「どこを変えたのか確かめたい」と思うことがあります。Git を使わない場合、次のようにファイルをコピーして残すことが多くなります。
list.html
list_コピー.html
list_20261020.html
list_最終.html
list_最終_修正版.html
この方法には、次の問題があります。
- どのファイルが最新か、どこを変えたのかが分からなくなる
- 複数のファイルをまとめて直したとき、どの組み合わせが正しいかが分からなくなる
- ほかの人と同じファイルを直すと、片方の変更が上書きされて消えることがある
ファイルの変更の記録を、決まった方法で残しておくことを バージョン管理 といいます。Git(ギット)は、いちばん広く使われているバージョン管理の道具です。Git を使うと、ファイルはいつも1つのまま、変更の記録だけが積み重なります。いつ・誰が・どこを・なぜ変えたのかが残り、前の状態にいつでも戻せます。
1.2 リポジトリとコミット
リポジトリ
Git で変更を記録したいフォルダーを、Git に「このフォルダーを管理する」と登録します。登録したフォルダーを リポジトリ といいます。リポジトリにしたフォルダーの中には、.git という名前の隠しフォルダーができ、変更の記録はすべてその中に保存されます。
ふだん直しているファイルは、これまでどおりフォルダーの中にあります。この、ふだん作業しているファイルの置き場所を 作業フォルダー(作業ツリー)といいます。
【ご注意】.git フォルダーは消さない・直さない
.git フォルダーには、変更の記録がすべて入っています。消すと、それまでの記録がすべて無くなります。中のファイルを直接開いたり、書き換えたりしないでください。
コミット
ファイルを直しても、Git はすぐには記録しません。区切りのよいところで「ここまでの変更を記録する」と Git に指示します。この記録を コミット といいます。コミットには、次のものが一緒に残ります。
| 残るもの | 内容 |
|---|---|
| 変更の中身 | どのファイルの、どの行を、どう変えたか(差分) |
| コミットメッセージ | 何のために変えたかを、コミットする人が文章で書いたもの |
| 作者と日時 | 誰が、いつコミットしたか |
| コミットの ID | コミットを見分けるための、英数字の長い番号(例:3f2a9c1…) |
コミットを積み重ねたものを 履歴 といいます。履歴を見れば、いつ・誰が・何のために変えたのかが分かり、どのコミットの状態にも戻せます。
差分
前の状態と今の状態の違いを 差分 といいます。ツールでは、消した行が赤、足した行が緑のように色分けして表示されます。コミットする前に差分を見て、意図した変更だけになっているかを確かめるのが基本です。

図1-1 作業フォルダーで直した変更を、コミットで履歴に記録する
1.3 GitHub と、プッシュ・プル・クローン
ここまでのリポジトリは、自分のパソコンの中にあります。これを ローカルリポジトリ といいます。ローカルリポジトリだけでは、パソコンが壊れると記録も無くなり、ほかの人と共有することもできません。
そこで、インターネット上にもリポジトリを置きます。これを リモートリポジトリ といいます。この教材では、リモートリポジトリを置く場所として GitHub(ギットハブ)を使います。GitHub は、リポジトリを預かって共有するための Web サービスで、無料のアカウントで使えます。
ローカルとリモートの間では、次の3つの操作でコミットをやり取りします。
| 操作 | 向き | すること |
|---|---|---|
| プッシュ(push) | ローカル → リモート | 自分のコミットを GitHub に送る |
| プル(pull) | リモート → ローカル | GitHub にある、ほかの人のコミットを取り込む |
| クローン(clone) | リモート → ローカル | GitHub のリポジトリを、履歴ごと丸ごと自分のパソコンにコピーする(最初の1回だけ) |

図1-2 GitHub を通して、自分とほかの人がコミットをやり取りする
【知識メモ】Git と GitHub は別のもの
Git は、パソコンの中で変更を記録する道具です。GitHub は、Git のリポジトリを預かる Web サービスです。Git だけでも、自分のパソコンの中で変更を記録できます。GitHub のほかにも、GitLab や Bitbucket など、同じ役割のサービスがあります。
1.4 ブランチ
新しい機能を作るときに、作りかけの変更で、ほかの人の作業や動いているものを壊したくないことがあります。Git では、履歴を枝分かれさせて、ほかに影響しない場所で作業できます。この枝分かれを ブランチ といいます。
- リポジトリを作ると、最初に
mainという名前のブランチができます。この教材では、mainを「いつも正しく動く状態」として扱います。 - 作業するときは、
mainから新しいブランチを作り、そこでコミットします。 - 作業が終わったら、ブランチの変更を
mainに取り込みます。この取り込みを マージ といいます。
ブランチとマージは、第8章・第9章で、実際に操作して学びます。
1.5 2つのツールと、どちらを選ぶか
Git は、もともとコマンド(文字で入力する命令)で操作する道具です。この教材では、画面で操作できる次の2つのツールを使います。どちらも無料で、中で動いているのは同じ Git です。
| TortoiseGit | GitHub Desktop | |
|---|---|---|
| 作っているところ | TortoiseGit の開発チーム(オープンソース) | GitHub |
| 使えるパソコン | Windows だけ | Windows と mac |
| 操作の仕方 | エクスプローラーでフォルダーやファイルを右クリックし、メニューから操作する。フォルダーやファイルのアイコンに、状態を表す印が付く | 専用の画面を開いて操作する。変更・履歴・ブランチが1つの画面にまとまっている |
| 画面の言語 | 日本語(言語パックを入れる) | 英語 |
| インストールするもの | Git for Windows と TortoiseGit | GitHub Desktop だけ(Git が入っている) |
| できること | Git のほとんどの操作。GitHub 以外のサービスとも同じように使える | よく使う操作に絞っている。GitHub と組み合わせて使うのに向いている |
次の順で選んでください。
- 職場や学校で使うツールが決まっている場合は、そのツールを選びます。
- mac で取り組む場合は、GitHub Desktop を選びます(TortoiseGit は Windows だけです)。
- 決まっていない場合は、どちらを選んでもかまいません。この教材で学べることは同じです。
選んだツールの第2章から進めてください。
- TortoiseGit で進める:第2章 開発環境の準備
- GitHub Desktop で進める:第2章 開発環境の準備
【知識メモ】現場ではコマンドで操作することもある
現場では、Git をコマンドで操作する人もいます。ツールとコマンドのどちらでも、中で行われることは同じです。この教材で学ぶ「リポジトリ」「コミット」「プッシュ」などの考え方は、コマンドを使うときにもそのまま使えます。
公式ドキュメント
この教材の内容をさらに詳しく調べたいときは、次の公式ドキュメントを引きます。今は読まなくてかまいません。困ったときや、教材で扱わなかったことを調べるときに使ってください。
| 資料 | 内容 | 言語 |
|---|---|---|
| Pro Git(日本語版) | Git の公式サイトにある Git の解説書。コミット・ブランチなどのしくみを詳しく説明している | 日本語 |
| Git リファレンス | Git の命令(コマンド)の正式な説明 | 英語 |
| GitHub Docs | GitHub の使い方(リポジトリ・プルリクエストなど) | 日本語 |
| GitHub Desktop のドキュメント | GitHub Desktop の使い方 | 日本語 |
| TortoiseGit マニュアル | TortoiseGit の各画面とメニューの説明 | 英語 |
この中で最もよく使うのは、Pro Git と GitHub Docs です。どちらも日本語で読めます。
1.6 この教材で行うこと
この教材では、HTML入門で作る HTML のファイルを題材にして、次の順に進めます。
- ツールと GitHub のアカウントを準備する(第2章)
- HTML のファイルを置いたフォルダーをリポジトリにする(第3章)
- HTML のファイルを直してコミットし、履歴を見たり、元に戻したりする(第4・5章)
- GitHub にリポジトリを作ってプッシュし、別のフォルダーにクローンしてプルする(第6・7章)
- ブランチで作業し、マージする。コンフリクトを直す(第8・9章)
- GitHub の画面で、プルリクエストを使って変更を確かめてから取り込む(第10章)
ほかの人と一緒に作業する練習は、GitHub の Web 画面でファイルを直して「ほかの人の変更」の代わりにします。1人でも、すべての練習ができます。
1.7 まとめと確認問題
まとめ
- ファイルの変更の記録を決まった方法で残すことを バージョン管理 といい、Git はその道具
- Git で管理するフォルダーを リポジトリ といい、記録は
.gitフォルダーに入る - 区切りのよいところで変更を記録することを コミット といい、コミットを積み重ねたものが 履歴
- GitHub は、リポジトリを預かって共有する Web サービス。ローカルとリモートの間は、プッシュ・プル・クローンでやり取りする
- 履歴の枝分かれを ブランチ、ブランチの変更を取り込むことを マージ という
- ツールは TortoiseGit(Windows だけ、右クリックで操作)と GitHub Desktop(Windows と mac、専用の画面で操作)から選ぶ
確認問題
問1 ファイルをコピーして残すやり方と比べて、Git でバージョン管理するとよい点を2つ答えてください。
解答を見る
ファイルはいつも1つのまま、いつ・誰が・どこを・なぜ変えたのかが記録として残ることと、どのコミットの状態にもいつでも戻せることです。ほかの人と同じファイルを直しても、変更が上書きされて消えにくくなることもあげられます。
問2 プッシュとプルは、それぞれどちらからどちらへ、コミットを送る操作ですか。
解答を見る
プッシュは、ローカルリポジトリ(自分のパソコン)からリモートリポジトリ(GitHub)へ、自分のコミットを送る操作です。プルは、リモートリポジトリからローカルリポジトリへ、ほかの人のコミットを取り込む操作です。
問3 mac で取り組む人は、TortoiseGit と GitHub Desktop のどちらを使いますか。また、その理由を答えてください。
解答を見る
GitHub Desktop を使います。TortoiseGit は Windows でしか使えないためです。