CH 03 / 75第1部 導入 ── 全体像をつかむ

GitとGitHubの違い

このページで分かること

  • Git と GitHub がまったく別物であることが分かる
  • どちらの機能を使っているのかを、操作のたびに判別できる
  • GitHub 以外の選択肢(GitLab など)があることが分かる
このページの目次11 items

前のページで、Git は分散型なので「手元」と「共有先」の2箇所があると説明しました。この2つに対応するのが Git と GitHub です。名前が似ているせいで同一視されがちですが、作った会社も、動く場所も、できることも違います。

一言でいうと#

Git GitHub
正体 ソフトウェア Webサービス
動く場所 自分のPCの中 インターネット上(他社のサーバー)
作った人 リーナス・トーバルズ(2005年) GitHub社(2008年、現在はMicrosoft傘下)
費用 無料(オープンソース) 無料プランあり・有料プランあり
ネット接続 不要 必須
役割 履歴を記録する 履歴を共有し、人と協業する

Git がなくても GitHub は成り立ちません。GitHub がなくても Git は完全に機能します。

この関係は、カメラと写真共有サービスに似ています。カメラ(Git)は単体で写真を撮れます。Instagram(GitHub)は、撮った写真を人に見せ、コメントをもらうための場所です。カメラを使わずに Instagram だけ使うことはできません。

Git は自分のPCで動き、GitHub はインターネット上で動く。2つの間は git push と git clone でつながる

左が Git、右が GitHub の受け持ちです。間をつなぐ矢印だけが、2つの世界をまたぐ操作です。

Git だけでできること#

図の左側に挙げた5つは、インターネットに一度も繋がずにすべてできます。つまり、バージョン管理の本質的な機能はすべて Git 側にあります。第2部で扱うのは、この範囲です。

GitHub が付け足すもの#

GitHub は Git のリポジトリを預かる場所であり、そこに協業のための機能を乗せたサービスです。

1. 保管と共有#

リポジトリをクラウドに置き、複数のPC・複数の人から読み書きできるようにします。バックアップとしても機能します。

2. 協業のための道具#

機能 何をするもの
Issue 課題・バグ・要望を記録して議論する
Pull Request 「この変更を取り込んでほしい」と提案し、レビューする
Projects 作業をカンバン形式で管理する
Discussions 質問や雑談をする掲示板

3. 自動化とホスティング#

機能 何をするもの
GitHub Actions push をきっかけにテストや公開を自動実行する
GitHub Pages リポジトリの中身を静的Webサイトとして公開する
Releases 成果物(実行ファイルなど)を配布する
Dependabot 使っているライブラリの脆弱性を検知して通知する

これらは Git の機能ではありません。GitHub というサービスが独自に用意しているものです。

どちらを使っているのかを見分ける方法#

操作の途中で「今どっちの話をしているのか」が分からなくなったら、次の基準で判断できます。

判断基準 Git GitHub
ターミナルで git 〜 と打っている ✅
ブラウザで github.com を開いて操作している ✅
ネットが切れていても実行できる ✅
ログインが必要 ✅

ただし例外があります。git push と git clone は Git のコマンドですが、通信相手が GitHub です。この2つは「Git を使って GitHub と通信している」状態で、まさに2つの世界の境界線にあります。だから初心者が最も混乱するのもこの2つです。第6部で丁寧に扱います。

GitHub 以外の選択肢#

Git のリポジトリを預けるサービスは GitHub だけではありません。

サービス 特徴
GitHub 利用者数が最大。OSSの事実上の標準。学習資料が最も多い
GitLab 自社サーバーに設置できる版(Self-Managed)がある。企業内利用に強い
Bitbucket Jira など Atlassian 製品との連携が強い
Gitea / Forgejo 軽量で自前サーバーに置ける。NAS などでも動く

これらはすべて Git を扱うサービスなので、Git の知識はそのまま流用できます。乗り換えても学び直しはほとんど必要ありません。このガイドで Git の基礎に時間を割くのは、そこが一生使える知識だからです。

よくある疑問#

Q. 「GitHubにアップする」という言い方は正しいですか?
A. 日常会話としては通じますが、内部で起きていることは「アップロード」とは少し違います。手元の履歴と GitHub 上の履歴を突き合わせ、差分だけを送っています。この違いは第6部の39(push)で扱います。

Q. GitHub にアカウントを作れば Git も使えるようになりますか?
A. なりません。Git は自分のPCに別途インストールする必要があります。第2部の06で扱います。

Q. 会社のコードを GitHub に置いても大丈夫ですか?
A. Private リポジトリにすれば外部からは見えません。ただし、社内規程で外部サービスへのソースコード保管が禁止されている場合もあります。組織で使う場合は、権限設計(第7部の49)とセキュリティ機能(第8部の57)を必ず併せて確認してください。

まとめ#

  • Git は自分のPCで動くソフトウェア、GitHub はインターネット上のWebサービス
  • バージョン管理の本質的な機能(記録・復元・分岐・統合)はすべて Git 側にある
  • GitHub が付け足すのは「共有」と「協業」と「自動化」
  • git 〜 と打っているときは Git、ブラウザで操作しているときは GitHub
  • Git の知識は GitLab など他サービスでもそのまま使える

次のページ#

04. GitHubアカウントを作る ── 実際に手を動かします。アカウント作成と、必須になっている2要素認証の設定まで行います。