背景
お話しする中で、「git」と「GitHub」の違いを理解していないケースがよく見受けられるなという印象がありました。認識が双方違っているといけないので違いを書き留めておきます。
gitとは?
gitは、オープンソースの分散型バージョン管理システムです。下記のような特徴があります。
- ソースコードのバージョン管理が可能
- ローカル環境で動作
- 過去の変更履歴を追跡し、特定のバージョンに戻したり、変更を比較が可能
- チーム開発での作業を効率化するためのブランチ機能やマージが利用可能
例)gitを単体で使う場面
- 個人プロジェクトのコードをローカル環境で管理
- チーム開発での作業内容を整理するために履歴を残す場合
GitHubとは?
GitHubは、gitのリポジトリをインターネット上でホスティングするサービスの一つです。下記のような特徴があります。
- gitで管理されたプロジェクトをオンライン上に保存が可能
- チームメンバーや他の開発者とコードを共有し、コラボレーションが可能
- プルリクエストやイシューなど、プロジェクト管理を支援する機能が充実
- オープンソースプロジェクトの公開や参加が可能
例)GitHubを使う場面
- 他の開発者と共同でプロジェクトを進行
- コードレビュー
- ソースコードを公開が可能
両者の違いを整理
項目 | git | GitHub |
---|---|---|
定義 | 分散型バージョン管理システム | gitリポジトリのホスティングサービス |
使用目的 | バージョン管理 | コラボレーション、共有、公開 |
主な機能 | コミット、ブランチ管理 | プルリクエスト、イシュー管理 |
動作場所 | ローカル環境 | クラウド環境 |
誤解しやすいポイント
-
GitHub = gitではない
GitHubはgitをベースにしたサービスであり、gitそのものではありません。 - 他にもGitHubのようなサービス(GitLab、Bitbucketなど)が存在する。
GitHubはその中でも代表的な選択肢という位置づけです。
結論
「git」はバージョン管理システム、「GitHub」はそれを補助するクラウドサービスという位置づけです。それぞれの役割を理解して適切に使い分けるが共通言語を持つということでも必要です。