エンジニアが当然のように使う「Git」という言葉。非エンジニアの方にとっては何のことかわからなかったり、聞いたことはあっても仕組みがつかめなかったりすることが多いでしょう。本記事では、Gitをまったく知らない方でも理解できるよう、身近な例えを使いながら基礎から解説します。
Gitとは何か
バージョン管理とは?料理レシピで考える
Gitを理解するには、まずバージョン管理という概念を理解する必要があります。
たとえば、あなたがカレーのレシピを改良しているとします。
- v1: 基本のカレーレシピ
- v2: 隠し味にリンゴを追加
- v3: スパイスを増やしてより本格的に
- v4: リンゴを入れたら合わなかったので削除
このとき、「v2の状態に戻したい」「v1とv3の何が違うか確認したい」と思ったとき、どうするでしょうか。ファイルを レシピ_最終.docx レシピ_最終2.docx レシピ_本当の最終.docx という形で保存するのは混乱のもとです。
バージョン管理とは、ファイルの変更履歴を体系的に管理する仕組みです。いつ・誰が・何を変えたかを記録し、過去の状態にいつでも戻れるようにします。
Gitの定義
Git(ギット)は、2005年にLinuxカーネルの開発者であるリーナス・トーバルズが作成した、分散型バージョン管理システムです。
プログラムのソースコードを管理するために生まれましたが、現在はドキュメントや設定ファイルなど、あらゆるテキストファイルの管理にも使われています。世界中のエンジニアが使う、事実上の標準的なバージョン管理ツールです。
Gitの主要な概念
リポジトリ(Repository)
リポジトリは、ファイルとその変更履歴をすべて保管する「保存庫」です。略して「リポ(repo)」と呼ばれることもあります。
- ローカルリポジトリ:自分のPC上にあるリポジトリ
- リモートリポジトリ:GitHub等のサーバー上にあるリポジトリ
料理で言えば、レシピ帳そのもの(すべての版を含む完全な記録)がリポジトリです。
コミット(Commit)
コミットは、ファイルへの変更を「確定・記録する」操作です。変更のスナップショットをリポジトリに保存します。
コミットには必ずコミットメッセージ(変更内容の説明文)を付けます。「スパイスを増量」「ログイン機能を追加」といった説明を書くことで、あとから変更内容を追跡しやすくなります。
各コミットは固有のID(ハッシュ値)を持ち、「このコミットの時点」に戻ることが常に可能です。
ブランチ(Branch)
ブランチは、開発の「分岐」を作る機能です。本流の開発ライン(mainブランチ)に影響を与えずに、新機能の開発や問題の修正を別のラインで進められます。
料理の例えで言えば: – mainブランチ:現在お客様に提供している完成版のレシピ – feature/new-spice ブランチ:新しいスパイスを試している実験用レシピ
実験に失敗しても、mainブランチは安全なまま。成功したら mainブランチに取り込む(マージする)ことができます。
マージ(Merge)
マージは、あるブランチの変更を別のブランチに統合する操作です。開発が完了した機能ブランチをmainブランチに取り込むときに使います。
複数人が別々のブランチで作業し、完成したものをmainに統合するという流れが、チーム開発の基本パターンです。
プル・プッシュ(Pull / Push)
- プッシュ(Push):ローカルリポジトリの変更をリモートリポジトリへ送信する
- プル(Pull):リモートリポジトリの最新変更を自分のローカルリポジトリへ取得する
チームで開発するとき、メンバーが行った変更を取得(プル)し、自分の変更を共有サーバーに反映(プッシュ)するという流れで協業します。
GitとGitHubの違い
GitとGitHubは別物です。しかし非常によく混同されます。
| 項目 | Git | GitHub |
|---|---|---|
| 種類 | バージョン管理システム(ソフトウェア) | Gitリポジトリのホスティングサービス(ウェブサービス) |
| 提供者 | オープンソース(Linus Torvalds作) | Microsoft(2018年買収) |
| 動作場所 | ローカルPC上 | クラウド(ウェブ) |
| 主な機能 | バージョン管理・ブランチ・マージ | リモートリポジトリ・PR・Issue・CI/CD |
| 料金 | 無料 | 無料〜(有料プランあり) |
Gitはバージョン管理を行うツール本体、GitHubはGitのリポジトリをインターネット上で管理・共有するためのプラットフォームです。
GitHubの類似サービスとしてGitLabやBitbucketもあります。GitHubが最もシェアが高く、特にオープンソースプロジェクトでは事実上の標準です。
基本コマンド早見表
Gitはコマンドライン(ターミナル)から操作することが基本です。よく使うコマンドをまとめます。
| コマンド | 内容 |
|---|---|
git init |
新しいリポジトリを作成する |
git clone <URL> |
リモートリポジトリをローカルにコピーする |
git status |
変更があるファイルの状態を確認する |
git add <ファイル名> |
コミット対象にファイルを追加する(ステージング) |
git commit -m "メッセージ" |
ステージングした変更をコミットする |
git push origin <ブランチ名> |
ローカルの変更をリモートに送信する |
git pull |
リモートの最新変更をローカルに取得する |
git branch |
ブランチ一覧を表示する |
git checkout -b <ブランチ名> |
新しいブランチを作成して切り替える |
git merge <ブランチ名> |
指定したブランチを現在のブランチにマージする |
git log |
コミット履歴を表示する |
GUIツールも活用できる
コマンドが難しく感じる場合は、GUIアプリを使う方法もあります。
- GitHub Desktop:GitHubが提供する公式GUIクライアント。初心者向け
- Sourcetree:Atlassianが提供する無料GUIクライアント
- VS Code の Git統合:エディタ上でGit操作が可能
チーム開発でのGitの使われ方
Gitを使ったチーム開発の典型的な流れを紹介します。
プルリクエスト(Pull Request / PR)
GitHubでは、ブランチへの変更を他のメンバーにレビューしてもらってからマージするための仕組みとしてプルリクエスト(PR)があります。
- 開発者が機能ブランチで作業
- PRを作成し、レビュアーに通知
- コードレビュー・修正
- 承認されたらmainブランチにマージ
このフローにより、コードの品質管理・知識共有・ミスの防止が実現します。
代表的なブランチ戦略
チームの規模や開発スタイルに応じて、ブランチの運用ルールが異なります。
| 戦略名 | 概要 | 向いているケース |
|---|---|---|
| GitHub Flow | mainとfeatureブランチのみ。シンプル | 小規模・継続的デリバリー |
| Git Flow | main / develop / feature / release / hotfix の5種 | リリースサイクルが明確な開発 |
| Trunk-Based Development | 全員が短命ブランチからmainに直接マージ | 大規模チーム・CI/CD重視 |
まとめ
Gitは、ファイルの変更履歴を管理するバージョン管理システムです。リポジトリにコミット(変更の記録)を積み重ね、ブランチで安全に実験し、マージで統合するという仕組みが基本です。
GitHubはGitのリポジトリをクラウドで管理・共有するサービスで、チーム開発を支えるプラットフォームとして広く使われています。
エンジニアでなくても、Gitの概念を理解することで、エンジニアとのコミュニケーションがスムーズになります。また、ドキュメントや設定ファイルの管理にも活用できる汎用性の高いツールです。

