GitとGitHubの違いを理解するための解説

GitとGitHubは、どちらもソースコードのバージョン管理するためのツールです。

この違いを簡単に解説します。

目次

GitとGitHubの違い

  • Git:ローカルでのバージョン管理
  • GitHub:Gitリポジトリのホスティング

Gitは基本、自分の環境でのみソースコードのバージョン管理を行います。
一方GitHubは、チームでの共有や公開をしたい場合に利用します。

ローカルリポジトリとリモートリポジトリ

  • ローカルリポジトリ:自分のパソコン内で使うもので、基本的に他の人と共有しません。
  • リモートリポジトリ:インターネット上にあるリポジトリで、複数人で共有するためにサーバー上に置かれます。

つまり、ローカルリポジトリはGitの管理領域であり、リモートリポジトリはGitHubのようなサービス上に存在すると考えてよいです。

補足:リポジトリとは

ファイルの状態を記録していくことを「コミット」といい、そのコミットを蓄積・管理する場所が「リポジトリ」です。

履歴管理の流れ

まずは、履歴をどのように記録していくのか、Gitの基本構造を見ていきます。

Git:3つの領域で管理

  1. ワークツリー
    • 実際にファイルを編集・作業する場所(作業用ディレクトリ)
  2. ステージングエリア
    • コミットする準備ができた変更を一時的に保管する場所
    • 「インデックス」とも呼ぶ
  3. ローカルリポジトリ
    • コミットされた履歴が記録されている領域
    • .gitディレクトリに、過去の複数のコミット情報が保存される

コミットの流れ

ワークツリー

作業用ディレクトリで編集

git add

ステージングエリア

変更内容を一時的に保管

git commit

ローカルリポジトリ

履歴として変更を記録(コミット)

このように、Gitでは「作業 → ステージング → コミット」という3段階を経て、変更内容が履歴として記録されていきます。

GitHub:ローカルリポジトリを共有する

ローカルリポジトリにコミットした内容は、任意のタイミングでリモートリポジトリ(GitHub)に共有させることができます。

ローカルリポジトリ
(自分のPC)

git push

リモートリポジトリ
(GitHub)

リモートリポジトリに共有

全体の流れ

コマンド内容
ファイル編集ワークツリーで作業
git addステージングエリアに追加
git commitローカルリポジトリに記録
git pushリモートリポジトリに共有

このように、作業内容はまずローカルで管理され、git pushによって初めてリモートに共有されます。

リモートリポジトリをローカルに取り込む

逆に、リモートリポジトリの変更内容をローカルに取り込みたいときは「プル」、または「フェッチ」いう操作を行います。

  • プル:ローカルリポジトリとワークツリーに即反映
  • フェッチ:ローカルリポジトリにのみ反映(ワークツリーには影響なし)

プル

リモートリポジトリ
(GitHub)

git pull

ローカルリポジトリ
+
ワークツリー

フェッチ

リモートリポジトリ
(GitHub)

git fetch

ローカルリポジトリ

git merge

ワークツリー

すぐに作業環境に反映させたいときはプル
内容を確認してから統合(マージ)したいときはフェッチを使うと安心です。

リポジトリを複製:クローンとフォーク

GitHubでリポジトリを複製する方法には、「クローン」と「フォーク」の2種類があります。

  • クローン:リポジトリを自分のPC(ローカル環境)にコピーします。
  • フォーク:GitHub上にある他のユーザーのリポジトリを、自分のアカウントにコピーします。

クローン

リモートリポジトリ
(GitHub)

git clone

ローカルリポジトリ
+
ワークツリー

フォーク

リモートリポジトリ
(GitHub)

他のユーザーアカウント

Fork

リモートリポジトリ
(GitHub)

自分のアカウント

クローンは「ローカル環境での操作」ですが、フォークは「GitHub上での操作」です。

主な使い分け

  • 自分用に作業したい場合 → クローン
  • 他人のリポジトリに修正を提案したい場合 → フォーク

なお、クローンしたものをさらにクローンすることはできません。

教材などでサブアカウントを使ってフォークする側とされる側を一人二役で行う場合は、まずメインアカウントのリポジトリをクローンし、サブアカウントでフォークすると作業がスムーズに進みます。

GitとGitHubの違いまとめ

Gitはローカル環境での履歴管理ツール、GitHubはそのコードを共有・保存するWebサービスです。

こうした基本的な仕組みや領域の違いを理解しておけば、GitとGitHubの操作に迷わず対応できるようになります。

おすすめWEBスクール

WEB制作やWEBデザインを学びたいなら、SNSでも話題の「デイトラ」がおすすめ!
どのコースも10万円前後と業界最安値で、副業や転職に向けて十分なスキルを身につけることができます。

役に立ったら他の方にシェア

お気軽にコメントどうぞ

コメントする

目次