Git・GitHub・Giteaの違いを整理する
この記事は、Git・Gitea入門シリーズの第1回です。
GitやGiteaを使い始める前に、まず押さえておきたいのが「Git」と「GitHub」「Gitea」の違いです。
名前が似ているため混同しやすいですが、役割は同じではありません。
この記事では、これからGitやGiteaを使う人に向けて、Git・GitHub・Giteaの全体像を整理します。
細かいコマンド操作やブランチ運用のルールには深入りせず、まずは「何が何のためにあるのか」を理解することを目的にします。
このあと、第2回:Git、Giteaを始める前に決めるべきルール で運用前の決めごとを、第3回:Gitの基本的なコマンド で日常的に使う操作を整理します。
Gitとは
Gitは、ファイルの変更履歴を管理するための仕組みです。
正式には、分散型バージョン管理システムと呼ばれます。
少し簡単に言うと、Gitを使うことで、次のようなことができます。
- いつ、どのファイルを変更したか記録できる
- 過去の状態に戻せる
- 複数人で作業しても変更履歴を追いやすい
- 作業途中の内容を分けて管理できる
たとえば、WordやExcelのファイルを作業していると、次のようなファイル名になることがあります。
資料.xlsx
資料_修正版.xlsx
資料_最終版.xlsx
資料_最終版_本当の最終.xlsx
このような管理でも短期的には何とかなりますが、修正が増えたり、複数人で作業したりすると、どれが正しいファイルなのか分かりにくくなります。
Gitは、このような「変更履歴の管理」を仕組みとして行うものです。
リポジトリとは
Gitを使うときによく出てくる言葉に、リポジトリがあります。
リポジトリとは、ファイルと変更履歴をまとめて管理する場所です。
単なるフォルダではなく、Gitによって変更履歴が記録される管理単位と考えると分かりやすいです。
たとえば、アプリ開発であれば、次のようなものが1つのリポジトリに入ります。
- プログラムのファイル
- 画像や設定ファイル
- READMEなどの説明ファイル
- これまでの変更履歴
Gitでは、このリポジトリを中心に作業します。
コミットとは
コミットとは、変更内容を履歴として保存する単位です。
ファイルを編集しただけでは、Gitの履歴にはまだ残りません。
変更内容を「ここまでを1つの記録として残す」と決めて保存する操作がコミットです。
たとえば、次のような単位でコミットします。
ログイン画面を追加
誤字を修正
一覧画面の表示崩れを修正
READMEにセットアップ手順を追記
コミットを適切に残しておくと、後から「どの変更で何をしたのか」を確認しやすくなります。
ブランチとは
ブランチとは、作業の流れを分ける仕組みです。
たとえば、現在動いている安定版を残したまま、新機能の作業だけを別の流れで進めたい場合に使います。
イメージとしては、一本の作業の流れから枝分かれして、別の作業を進める仕組みです。
ブランチを使うことで、次のような作業がしやすくなります。
- 新機能の作業
- バグ修正
- 試験的な変更
- 複数人での並行作業
ただし、ブランチの使い方にはある程度ルールが必要です。
この点は、次の記事で扱います。
GitHubとは
GitHubは、Gitリポジトリをインターネット上で共有・管理するサービスです。
Gitそのものではなく、Gitで管理しているリポジトリを置いておく場所、と考えると分かりやすいです。
GitHubを使うと、次のようなことができます。
- リポジトリをインターネット上に保存できる
- 複数人で同じリポジトリを共有できる
- ブラウザ上でファイルや履歴を確認できる
- IssueやPull Requestなどで作業管理ができる
- GitHub Pagesなど、関連機能も利用できる
個人開発でも、企業やOSS開発でも広く使われています。
なお、表記は「Github」ではなく「GitHub」が一般的です。
個人利用ならGitHubが始めやすい
個人でGitを使い始める場合は、まずGitHubを使うのが分かりやすいです。
理由は、初期設定が比較的簡単で、すぐにリポジトリを作って使い始められるためです。
自分でサーバーを用意する必要がなく、アカウントを作成すれば、ブラウザ上でリポジトリの作成や管理ができます。
また、GitHubは個人開発や学習記録の公開場所としても使われることがあります。
公開できる範囲で作成したアプリやツール、学習用のコードを整理しておくと、転職活動や実績紹介の場面で参考資料として活用できるケースもあります。
もちろん、すべてのリポジトリを公開する必要はありません。
個人用のメモや公開したくないコードは、非公開リポジトリとして管理することもできます。
そのため、個人でGitを学ぶ入口としては、GitHubは扱いやすい選択肢です。
Giteaとは
Giteaは、自分たちの環境に構築できるGitリポジトリ管理サービスです。
GitHubと同じように、Gitリポジトリをブラウザ上で確認したり、複数人で共有したりするために使います。
ただし、GitHubが外部サービスであるのに対して、Giteaは自分たちのサーバーや組織内の環境に構築して使うことができます。
そのため、次のような場面で選択肢になります。
- 外部サービスにコードを置きにくい
- 組織内だけでGitリポジトリを管理したい
- 権限管理を自分たちで行いたい
- 小規模なGit管理環境を用意したい
職場で使う場合は、GitHubよりもGiteaのような社内向けの仕組みが選ばれることもあります。
組織内で管理したい場合はGiteaも選択肢になる
職場や組織でGitを使う場合は、Giteaが選択肢になることがあります。
特に、数人から数十人規模の小さなチームや、外部サービスにコードや資料を置きにくい職場では、Giteaのように自分たちの環境に構築できるサービスが向いています。
Giteaは、組織内のサーバーやネットワーク内に構築して運用できます。
そのため、Gitリポジトリを外部サービスに預けず、組織内で管理しやすいという利点があります。
たとえば、次のような場合です。
- 業務上、外部サービスにコードを置きにくい
- 組織内だけでリポジトリを共有したい
- 利用者や権限を内部で管理したい
- 小規模なチームでGit管理を始めたい
- インターネット上のサービス利用に慎重な職場である
ただし、Giteaは自分たちで構築・管理する必要があります。
そのため、サーバーの準備、バックアップ、アクセス権限、障害時の対応なども考える必要があります。
つまり、個人で手軽に始めるならGitHub、組織内で情報管理を重視するならGitea、という見方ができます。
GitとGitHub・Giteaの違い
GitとGitHub・Giteaの関係は、混同しやすいところです。
整理すると、次のようになります。
| 用語 | 役割 |
|---|---|
| Git | ファイルの変更履歴を管理する仕組み |
| GitHub | Gitリポジトリをインターネット上で共有・管理するサービス |
| Gitea | 自分たちの環境に構築できるGitリポジトリ管理サービス |
つまり、Gitが土台です。
GitHubやGiteaは、そのGitリポジトリを共有・管理しやすくするためのサービスです。
たとえば、Gitだけでも自分のパソコン上で変更履歴を管理できます。
一方で、複数人で作業したり、別の端末から同じリポジトリを使ったりする場合は、GitHubやGiteaのようなサービスを使うと便利です。
ローカルとリモート
Gitを使うときには、ローカルとリモートという考え方も出てきます。
ローカルとは、自分のパソコン上にあるリポジトリのことです。
リモートとは、GitHubやGiteaなど、ローカル以外にあるリポジトリのことです。
たとえば、次のような関係です。
自分のPC
└─ ローカルリポジトリ
GitHub / Gitea
└─ リモートリポジトリ
普段の作業では、自分のPC上でファイルを編集し、Gitでコミットします。
その後、必要に応じてGitHubやGitea上のリモートリポジトリに反映します。
この「ローカル」と「リモート」の関係を理解しておくと、Gitの操作がかなり分かりやすくなります。
個人利用でのGitの見え方
個人利用の場合、Gitは主に自分の作業履歴を残すために使います。
たとえば、個人開発では次のような使い方があります。
- アプリやWebサイトの変更履歴を残す
- 失敗した変更を元に戻せるようにする
- 作業内容を後から振り返る
- 別のPCでも同じリポジトリを扱えるようにする
- 公開できる成果物を整理して、実績として示しやすくする
個人利用では、自分が分かればよい部分も多いため、最初は厳密なルールを決めすぎなくても運用できます。
ただし、将来的に自分以外の人が見る可能性がある場合や、長期間運用する場合は、ある程度のルールを決めておいた方が後で困りにくくなります。
特にGitHubで公開リポジトリを使う場合は、公開してよい情報だけを置くことが重要です。
個人情報、認証情報、業務上の情報などを誤って公開しないように注意する必要があります。
組織利用でのGitの見え方
組織利用の場合、Gitは単なる履歴管理だけではなく、チームで安全に作業するための仕組みになります。
たとえば、職場では次のような点が重要になります。
- 誰がどの変更をしたのか分かること
- 重要なファイルを誤って変更しないこと
- 作業中の変更と正式な変更を分けること
- レビューや承認の流れを作ること
- 権限を適切に管理すること
- 外部サービスに置いてよい情報か判断すること
個人利用では多少あいまいでも済むことがありますが、組織利用ではルールがないと混乱しやすくなります。
特に、ブランチの使い方、コミットメッセージの書き方、リポジトリの公開範囲、禁止事項、権限管理などは、使い始める前に決めておいた方がよい項目です。
情報管理に慎重な職場では、GitHubのような外部サービスではなく、Giteaのように組織内で管理できる仕組みが向いている場合があります。
GitHubとGiteaの使い分け
GitHubとGiteaは、どちらもGitリポジトリを管理するためのサービスです。
ただし、向いている場面には違いがあります。
| 観点 | GitHub | Gitea |
|---|---|---|
| 始めやすさ | 始めやすい | 構築が必要 |
| 主な利用場面 | 個人開発、学習、公開リポジトリ、OSS | 組織内利用、社内管理、小規模チーム |
| サーバー管理 | 基本的に不要 | 自分たちで必要 |
| 外部公開 | しやすい | 基本的には組織内利用向き |
| 情報管理 | 外部サービス利用が前提 | 組織内で管理しやすい |
| 実績紹介 | 活用しやすい | 外部から見せる用途には向きにくい |
個人でGitを学ぶなら、まずGitHubから始めるのが現実的です。
初期設定が比較的簡単で、個人開発や学習記録を整理しやすいためです。
一方で、職場や組織で使う場合は、Giteaのように組織内で管理できる仕組みが向いていることがあります。
特に、外部サービスにコードや資料を置きにくい場合や、権限管理を内部で行いたい場合には、Giteaが選択肢になります。
Gitを使う前に理解しておきたいこと
Gitは便利な仕組みですが、最初からすべてを理解する必要はありません。
まずは、次の関係を押さえておけば十分です。
Git
→ 変更履歴を管理する仕組み
GitHub
→ Gitリポジトリをインターネット上で共有・管理するサービス
Gitea
→ Gitリポジトリを組織内など自分たちの環境で管理しやすいサービス
リポジトリ
→ ファイルと変更履歴をまとめて管理する場所
コミット
→ 変更内容を履歴として保存する単位
ブランチ
→ 作業の流れを分ける仕組み
リモート
→ GitHubやGiteaなど、ローカル以外にあるリポジトリ
このあたりの用語が分かってくると、Gitのコマンドも理解しやすくなります。
この記事のまとめ
この記事では、Git・GitHub・Giteaの違いを整理しました。
Gitは、ファイルの変更履歴を管理するための仕組みです。
GitHubやGiteaは、そのGitリポジトリを共有・管理するためのサービスです。
個人でGitを学ぶ場合は、まずGitHubを使うと始めやすいです。
初期設定が比較的簡単で、学習記録や個人開発の成果を整理する場所としても使いやすいためです。
一方で、職場や組織で使う場合は、Giteaのように組織内で管理できる仕組みが向いていることもあります。
特に、外部サービスにコードや資料を置きにくい場合や、権限管理を内部で行いたい場合には、Giteaが選択肢になります。
Gitは、コマンドを覚える前に、まず全体像を理解しておくと入りやすくなります。
次の記事では、GitやGiteaを使い始める前に決めておきたいルールについて整理します。
- リポジトリの作り方
- ブランチ名の付け方
- コミットメッセージの書き方
- 個人利用と組織利用での注意点
- 禁止事項や権限管理の考え方
実際に使い始める前に、最低限どのようなルールを決めておくべきかを確認していきます。基本コマンドだけ先に確認したい場合は、第3回:Gitの基本的なコマンド に進んでも大丈夫です。