Gitとは?初心者がまず理解すべきバージョン管理の基本
「Gitって何?」「なぜエンジニアはGitを使うの?」と疑問に思っている方も多いのではないでしょうか。Gitの使い方を学ぶ前に、まずはGitの基本概念をしっかり理解しておきましょう。
Gitはファイルの変更履歴を管理するツール
Gitとは、ファイルの変更履歴を記録・管理するための「分散型バージョン管理システム」です。2005年にLinuxの開発者であるリーナス・トーバルズによって開発されました。
たとえば、あなたがプログラムを書いていて「昨日のコードに戻したい」と思ったことはありませんか?Gitを使えば、いつでも過去の状態に戻すことができます。WordやExcelの「元に戻す」機能をもっと強力にしたものだとイメージしてください。
バージョン管理がなぜ必要なのか
バージョン管理をしないと、次のような問題が発生します。
- ファイル名に「最終版」「最終版2」「本当の最終版」と名前を付けて混乱する
- 誰がいつどこを変更したかわからなくなる
- チーム開発で同じファイルを同時に編集してしまい、上書き事故が起きる
- バグが発生したときに、原因となった変更箇所を特定できない
Gitを導入すれば、これらの問題をすべて解決できます。実際の開発現場では、ほぼ100%の確率でGitが使われていると言っても過言ではありません。
「分散型」と「集中型」の違い
バージョン管理システムには「集中型」と「分散型」の2種類があります。
| 項目 | 集中型(SVNなど) | 分散型(Gitなど) |
|---|---|---|
| リポジトリの場所 | サーバーに1つだけ | 各開発者のPCにも存在 |
| オフライン作業 | 不可 | 可能 |
| 処理速度 | 遅い(通信が必要) | 速い(ローカルで完結) |
| 障害時の影響 | 全員が作業不可 | 個別に作業継続可能 |
Gitは分散型なので、ネットワークに接続していなくても作業できます。この柔軟性が、Gitが世界中の開発者に選ばれている理由の一つです。
Gitを学ぶメリット
IT業界への転職を目指す方にとって、Gitのスキルは必須と言えます。求人票の「必須スキル」欄にGitが記載されていることも非常に多いです。
株式会社アイティークロスでも、SES案件で参画するエンジニアにはGitの基本操作を身につけていただいています。大手自動車メーカーや金融機関のプロジェクトでは、Gitを使ったチーム開発が標準的なワークフローとなっています。
Gitのインストール方法【Windows・Mac対応】
Gitの基本概念を理解したら、さっそくパソコンにインストールしましょう。お使いのOSに合わせた手順を紹介します。
Windowsの場合
Windows環境へのGitインストールは、以下の手順で行います。
- Git公式サイト(https://git-scm.com/)にアクセスする
- 「Download for Windows」をクリックする
- ダウンロードしたインストーラー(.exeファイル)を実行する
- 基本的にはデフォルト設定のまま「Next」をクリックし続ける
- インストール完了後、コマンドプロンプトまたはGit Bashを開く
git --versionと入力し、バージョンが表示されれば成功
初心者の方にはGit Bashの使用をおすすめします。Git BashはLinuxライクなコマンドが使えるターミナルで、多くの学習教材がGit Bashを前提に解説しています。
Macの場合
Macでは、以下の方法でGitをインストールできます。
- ターミナルを開く(Spotlight検索で「ターミナル」と入力)
git --versionと入力する- Gitがインストールされていない場合、Xcode Command Line Toolsのインストールが促される
- 指示に従ってインストールを完了する
Homebrewを使用している場合は、brew install gitコマンドでもインストールできます。より新しいバージョンのGitを使いたい場合は、Homebrew経由がおすすめです。
初期設定を忘れずに
インストール後は、ユーザー名とメールアドレスの設定が必須です。この情報は、変更履歴に「誰が」変更したかを記録するために使われます。
ターミナル(Git Bash)で以下のコマンドを実行してください。
git config --global user.name "あなたの名前"git config --global user.email "your-email@example.com"
設定内容を確認するには、次のコマンドを入力します。
git config --list
ここで表示されるuser.nameとuser.emailが正しく設定されていればOKです。
これだけ覚えればOK!Gitの基本コマンド10選
Gitには数多くのコマンドがありますが、日常的に使うのは10個程度です。初心者の方はまずこの10個を確実にマスターしましょう。
1. git init(リポジトリの初期化)
新しいプロジェクトでGit管理を始めるときに使います。
git init
このコマンドを実行すると、カレントディレクトリに.gitという隠しフォルダが作成されます。ここにすべての変更履歴が保存されます。
2. git clone(リポジトリの複製)
既存のリモートリポジトリを自分のPCにコピーするときに使います。
git clone https://github.com/ユーザー名/リポジトリ名.git
チーム開発に途中から参加する場合は、git initではなくgit cloneを使うことがほとんどです。
3. git status(状態の確認)
現在の作業状態を確認するコマンドです。最も頻繁に使うコマンドと言っても過言ではありません。
git status
変更されたファイル、ステージングされたファイル、未追跡のファイルなどが一覧表示されます。迷ったらまずgit statusで現状を確認する癖をつけましょう。
4. git add(ステージングに追加)
変更したファイルをステージングエリアに追加します。
git add ファイル名(特定のファイルを追加)git add .(すべての変更を追加)
ステージングエリアとは、「次のコミットに含める変更を選択する場所」です。いきなりコミットするのではなく、まずステージングエリアに追加するという2段階の仕組みになっています。
5. git commit(変更の記録)
ステージングエリアに追加した変更を、履歴として確定させます。
git commit -m "コミットメッセージ"
コミットメッセージは、何をなぜ変更したかがわかる内容にしましょう。「修正」「更新」だけでは後から見返したときに意味がわかりません。
良いコミットメッセージの例を紹介します。
- 「ログイン画面のバリデーション処理を追加」
- 「商品一覧APIのレスポンス速度を改善」
- 「READMEにインストール手順を追記」
6. git log(履歴の確認)
コミット履歴を確認するコマンドです。
git log(詳細表示)git log --oneline(1行ずつ簡潔に表示)
コミットID、作成者、日時、コミットメッセージが表示されます。–onelineオプションを付けると見やすくなるのでおすすめです。
7. git branch(ブランチの操作)
ブランチの一覧表示や新規作成に使います。
git branch(一覧表示)git branch ブランチ名(新規作成)
ブランチについては次のセクションで詳しく解説しますので、ここでは「こういうコマンドがある」と覚えておいてください。
8. git checkout / git switch(ブランチの切り替え)
作業するブランチを切り替えるコマンドです。
git checkout ブランチ名(従来の方法)git switch ブランチ名(Git 2.23以降の新しい方法)
最近はgit switchの使用が推奨されています。ただし、古い解説記事ではgit checkoutが使われていることも多いので、両方覚えておくと安心です。
9. git merge(ブランチの統合)
あるブランチの変更を、現在のブランチに取り込みます。
git merge 統合したいブランチ名
たとえば、mainブランチにfeatureブランチの内容を取り込みたい場合は、まずmainブランチに切り替えてからmergeコマンドを実行します。
10. git push / git pull(リモートとの同期)
リモートリポジトリとの同期に使うコマンドです。
git push origin ブランチ名(ローカルの変更をリモートに送信)git pull origin ブランチ名(リモートの変更をローカルに取得)
チーム開発では、作業前にgit pullで最新の状態にし、作業後にgit pushで変更を共有するという流れが基本です。
基本コマンドまとめ表
| コマンド | 用途 | 使用頻度 |
|---|---|---|
| git init | リポジトリを新規作成 | ★☆☆☆☆ |
| git clone | リポジトリを複製 | ★★☆☆☆ |
| git status | 現在の状態を確認 | ★★★★★ |
| git add | ステージングに追加 | ★★★★★ |
| git commit | 変更を記録 | ★★★★★ |
| git log | 履歴を確認 | ★★★☆☆ |
| git branch | ブランチを操作 | ★★★★☆ |
| git switch | ブランチを切り替え | ★★★★☆ |
| git merge | ブランチを統合 | ★★★☆☆ |
| git push / pull | リモートと同期 | ★★★★★ |
実践で理解!Gitの基本ワークフローを体験しよう
コマンドを個別に覚えるだけでは、実際の使い方はなかなかイメージできません。ここでは、簡単なプロジェクトを例にGitの基本的な作業の流れを実践していきましょう。
ステップ1:プロジェクトの準備
まず、作業用のフォルダを作成してGitリポジトリを初期化します。
mkdir my-first-projectcd my-first-projectgit init
「Initialized empty Git repository」というメッセージが表示されれば成功です。
ステップ2:ファイルを作成して最初のコミット
簡単なHTMLファイルを作成してみましょう。テキストエディタでindex.htmlを作り、以下のような内容を記述します。
<!DOCTYPE html><html><head><title>My First Project</title></head><body><h1>Hello, Git!</h1></body></html>
ファイルを保存したら、以下のコマンドを順番に実行します。
git status(index.htmlが未追跡ファイルとして表示される)git add index.html(ステージングに追加)git commit -m "初回コミット:index.htmlを追加"(コミット実行)
ステップ3:ファイルを変更して差分を確認
index.htmlに段落を追加してみましょう。
<p>Gitの練習中です。</p>
変更を保存したら、次のコマンドで差分を確認できます。
git diff
追加した行が緑色の「+」マークと共に表示されます。削除した行がある場合は赤色の「-」マークで表示されます。この差分確認の習慣は、ミスを防ぐために非常に重要です。
確認できたら、コミットしましょう。
git add .git commit -m "index.htmlに段落テキストを追加"
ステップ4:コミット履歴を確認
git log --oneline
2つのコミットが時系列で表示されるはずです。各コミットには一意のID(ハッシュ値)が付与されており、このIDを使って過去の状態に戻すこともできます。
作業の流れのまとめ
Gitの基本的なワークフローは、次の4ステップの繰り返しです。
- コードを編集する
- git statusで変更状態を確認する
- git addでステージングに追加する
- git commitで変更を記録する
この「編集 → 確認 → 追加 → 記録」のサイクルを体に染み込ませることが、Git習得の第一歩です。
ブランチを使いこなそう|チーム開発の必須知識
Gitを使う最大のメリットの一つがブランチ機能です。ブランチを理解すれば、Git初心者から一歩ステップアップできます。
ブランチとは何か
ブランチ(branch)とは、日本語で「枝」を意味します。メインの開発ラインから分岐した、独立した作業領域のことです。
たとえて言うなら、ノートの途中から付箋を貼って別のメモを書くようなものです。付箋の内容がうまくいったらノートに清書し、失敗したら付箋を剥がせばノート本体には影響しません。
なぜブランチが必要なのか
ブランチが必要な理由は、主に以下の3つです。
- メインのコードを壊さずに新機能の開発ができる
- 複数の機能を同時並行で開発できる
- バグ修正と新機能開発を分けて管理できる
チーム開発では、開発者それぞれが自分のブランチで作業し、完成したらメインブランチにマージ(統合)するという流れが一般的です。
ブランチの基本操作
以下のコマンドでブランチの基本操作を行えます。
git branch(現在のブランチ一覧を表示)git branch feature-login(「feature-login」という新しいブランチを作成)git switch feature-login(ブランチを切り替え)git switch -c feature-signup(ブランチの作成と切り替えを同時に実行)
ブランチ命名規則の例
現場では、ブランチ名に規則を設けているケースがほとんどです。代表的な命名規則を紹介します。
| プレフィックス | 用途 | 例 |
|---|---|---|
| feature/ | 新機能の開発 | feature/user-login |
| bugfix/ | バグの修正 | bugfix/cart-error |
| hotfix/ | 緊急の修正 | hotfix/security-patch |
| release/ | リリース準備 | release/v1.2.0 |
命名規則をチームで統一しておくと、ブランチの目的が一目でわかり管理しやすくなります。
マージの手順
feature-loginブランチの変更をmainブランチに統合する手順は次のとおりです。
git switch main(mainブランチに切り替え)git merge feature-login(feature-loginの変更を取り込み)git branch -d feature-login(不要になったブランチを削除)
コンフリクト(競合)の対処法
複数のブランチで同じファイルの同じ箇所を変更した場合、コンフリクト(競合)が発生します。初心者が最も恐れるポイントですが、冷静に対処すれば難しくありません。
コンフリクトが起きると、ファイル内に以下のようなマーカーが表示されます。
<<<<<<< HEADmainブランチの内容=======feature-loginブランチの内容>>>>>>> feature-login
対処手順は次のとおりです。
- マーカー(<<<、===、>>>)を含む部分を確認する
- どちらの内容を残すか判断し、手動で編集する
- マーカーを削除する
git add .とgit commitで解決を記録する
VS Codeなどのエディタには、コンフリクトを視覚的に解決する機能が備わっています。ぜひ活用してみてください。
GitHubとの連携方法|リモートリポジトリを活用する
Gitの使い方を学ぶ上で、GitHub(ギットハブ)との連携は避けて通れません。GitとGitHubの違いを正しく理解しましょう。
GitとGitHubの違い
| 項目 | Git | GitHub |
|---|---|---|
| 種類 | バージョン管理ツール | Webサービス(ホスティング) |
| 動作場所 | ローカルPC | クラウド上 |
| 費用 | 完全無料 | 基本無料(有料プランあり) |
| 主な役割 | 変更履歴の管理 | リポジトリの共有・チーム協業 |
簡単に言うと、Gitはツール、GitHubはGitのリポジトリを保存・共有するためのサービスです。GitHubの他にもGitLab、Bitbucketなど類似サービスがあります。
GitHubアカウントの作成
- GitHub公式サイト(https://github.com/)にアクセスする
- 「Sign up」をクリックする
- メールアドレス、パスワード、ユーザー名を入力する
- メール認証を完了する
ユーザー名はGitHub上の公開プロフィールURLにもなります。本名やニックネームなど、わかりやすい名前を設定しましょう。
ローカルリポジトリをGitHubにアップロードする
先ほど作成したmy-first-projectをGitHubにアップロードしてみましょう。
- GitHubで「New repository」をクリックする
- リポジトリ名を入力し、「Create repository」をクリックする
- 表示されるコマンドを実行する
git remote add origin https://github.com/ユーザー名/my-first-project.gitgit push -u origin main
これで、ローカルの変更履歴がGitHub上にアップロードされます。以降はgit pushコマンドだけで同期できます。
プルリクエストの基本
チーム開発では、直接mainブランチにpushするのではなく、プルリクエスト(Pull Request、略してPR)を使います。
プルリクエストとは、「この変更をmainブランチに取り込んでほしい」という依頼のことです。チームメンバーにコードをレビューしてもらってから統合するので、品質を保つことができます。
プルリクエストの基本的な流れは次のとおりです。
- featureブランチで作業してpushする
- GitHub上でプルリクエストを作成する
- チームメンバーがコードレビューを行う
- 問題がなければマージする
実際のIT開発現場では、このプルリクエスト運用が当たり前に行われています。アイティークロスが支援する大手企業の案件でも、GitHubやGitLabを使ったプルリクエストベースの開発フローが標準です。
初心者がつまずきやすいポイントと解決策
Gitの学習を進める中で、多くの初心者がつまずくポイントがあります。ここではよくあるトラブルとその解決方法を紹介します。
つまずきポイント1:ステージングの概念がわからない
「なぜgit addしてからgit commitするの?直接commitではダメなの?」という疑問は非常に多いです。
ステージングエリアが存在する理由は、コミットに含める変更を選択できるからです。たとえば、ファイルAとファイルBを変更したけれど、ファイルAだけを先にコミットしたい場合に便利です。
荷物の発送に例えると、ステージングエリアは「梱包箱」です。送りたい荷物(変更ファイル)を箱に入れて(git add)、箱を発送する(git commit)というイメージです。
つまずきポイント2:コミットメッセージを間違えた
直前のコミットメッセージを修正するには、次のコマンドを使います。
git commit --amend -m "正しいコミットメッセージ"
ただし、すでにpush済みのコミットを修正する場合は注意が必要です。チーム開発ではトラブルの原因になることがあるため、push前に必ず確認する習慣をつけましょう。
つまずきポイント3:git addを取り消したい
ステージングに追加したファイルを取り消すには、次のコマンドを使います。
git restore --staged ファイル名(Git 2.23以降)git reset HEAD ファイル名(従来の方法)
つまずきポイント4:変更を元に戻したい
まだコミットしていない変更を元に戻すには、次のコマンドを使います。
git restore ファイル名(Git 2.23以降)git checkout -- ファイル名(従来の方法)
このコマンドを実行すると、変更内容が完全に失われるので注意してください。
つまずきポイント5:.gitignoreの設定
パスワードファイルやログファイルなど、Gitで管理したくないファイルがある場合は、.gitignoreファイルを作成します。
.gitignoreファイルに記載されたパターンに一致するファイルは、git addしても追跡対象外になります。
よくある.gitignoreの記述例を紹介します。
node_modules/(Node.jsの依存パッケージ).env(環境変数ファイル)*.log(ログファイル).DS_Store(Mac固有のシステムファイル)
つまずきポイント6:認証エラーが出る
2021年8月以降、GitHubではパスワード認証が廃止されました。代わりに、Personal Access Token(個人アクセストークン)またはSSH鍵を使った認証が必要です。
初心者の方には、まずPersonal Access Tokenの設定をおすすめします。GitHubの「Settings」→「Developer settings」→「Personal access tokens」から生成できます。
効率アップ!Git学習に役立つツールと参考資料
コマンドラインだけでなく、GUIツールや学習サービスを活用するとGitの理解がさらに深まります。
おすすめGUIクライアント
| ツール名 | 特徴 | 対応OS | 費用 |
|---|---|---|---|
| GitHub Desktop | シンプルで初心者向け | Windows / Mac | 無料 |
| Sourcetree | 高機能で視覚的に操作可能 | Windows / Mac | 無料 |
| VS Code内蔵Git | エディタと一体で便利 | 全OS | 無料 |
| GitKraken | 美しいUIで直感的 | 全OS | 基本無料 |
GUIツールを使えば、コマンドを打たなくてもGit操作が可能です。ただし、最初はコマンドラインで基本を理解してからGUIに移行することをおすすめします。コマンドの意味を理解していないと、GUIの操作が何をしているのかわからなくなるためです。
おすすめ学習リソース
- Learn Git Branching(https://learngitbranching.js.org/):ブラウザ上でGitの操作を視覚的に学べる無料サービスです。ブランチの概念を理解するのに最適です。
- GitHub公式ドキュメント:正確な情報が網羅されています。困ったときの参照先として活用しましょう。
- Progate:日本語でGitの基礎を学べるオンライン学習サービスです。スライド形式でわかりやすいと評判です。
VS Codeとの連携がおすすめ
プログラミング初心者にも人気のエディタ「Visual Studio Code(VS Code)」には、Git機能が標準搭載されています。
VS Codeでは以下のようなGit操作が視覚的に行えます。
- 変更ファイルの一覧表示と差分確認
- ステージング(git add)のワンクリック操作
- コミットメッセージの入力とコミット
- ブランチの作成・切り替え
- コンフリクトの視覚的な解決
Java、PHP、Python、JavaScriptなど、さまざまなプログラミング言語の開発でVS Codeは広く使われています。Git操作と合わせて使い方を覚えると、開発効率が大幅に向上します。
まとめ|Gitの使い方を身につけてエンジニアとしての一歩を踏み出そう
この記事では、Git初心者の方に向けて、基本的な使い方をインストールからGitHub連携まで網羅的に解説しました。最後にポイントを整理しましょう。
- Gitはファイルの変更履歴を管理する分散型バージョン管理システムで、現代の開発現場では必須のツールです。
- 日常的に使う基本コマンドは10個程度なので、まずはそれを確実にマスターしましょう。
- 基本ワークフローは「編集 → git status → git add → git commit」の繰り返しです。
- ブランチ機能を使えば、メインのコードを壊さずに安全に開発できます。
- GitHubと連携すれば、チーム開発やポートフォリオの公開に活用できます。
- つまずいても焦らず、エラーメッセージを読んで一つずつ対処することが大切です。
- GUIツールも便利ですが、まずはコマンドラインで基本を理解しましょう。
Gitのスキルは、エンジニアとして活躍するための基盤となります。未経験からIT業界への転職を考えている方も、Gitの基本操作ができれば面接でのアピールポイントになります。
株式会社アイティークロスでは、SES事業を通じて名古屋を中心にエンジニアのキャリア支援を行っています。異業種からの転職者が5割以上在籍しており、充実した研修制度でGitをはじめとする開発ツールの使い方も基礎から学べる環境を整えています。年間休日125日、残業月平均12.3時間と、ワークライフバランスを保ちながらスキルアップを目指せるのも魅力です。
「Git以外にも、JavaやPHP、Pythonなどのプログラミング言語を学びたい」「AWSやクラウド技術にも興味がある」という方は、関連するスキルアップ記事もあわせてご覧ください。一歩ずつ着実にスキルを積み重ねて、理想のエンジニアキャリアを実現しましょう。
よくある質問(FAQ)
Gitとは何ですか?初心者にもわかりやすく教えてください。
Gitとは、ファイルの変更履歴を記録・管理するための「分散型バージョン管理システム」です。プログラムのソースコードを過去の任意の状態に戻したり、誰がいつどのような変更を行ったかを追跡したりできます。2005年にLinux開発者のリーナス・トーバルズによって開発され、現在では世界中の開発現場で標準的に使われています。
GitとGitHubの違いは何ですか?
Gitはローカル環境で動作するバージョン管理ツールです。一方、GitHubはGitのリポジトリをクラウド上にホスティングし、チームでの共同作業を支援するWebサービスです。GitはソフトウェアでGitHubはサービスという関係にあります。GitHubの他にもGitLabやBitbucketなど類似のサービスがあります。
Git初心者がまず覚えるべきコマンドは何ですか?
最低限覚えるべきコマンドは、git status(状態確認)、git add(ステージング追加)、git commit(変更記録)、git push(リモートへ送信)、git pull(リモートから取得)の5つです。これらを使いこなせれば基本的な開発作業は行えます。慣れてきたらgit branch、git switch、git mergeなどのブランチ操作も習得しましょう。
Gitのコンフリクト(競合)が発生したらどうすればいいですか?
コンフリクトが発生したら、まず対象ファイルを開いて「<<<<<<>>>>>>」のマーカーを探します。マーカーの間に両方のブランチの変更内容が表示されるので、どちらを残すか(または両方を組み合わせるか)を判断して手動で編集します。マーカーを削除してからgit addとgit commitで解決を記録します。VS Codeなどのエディタには視覚的に解決する機能もあります。
プログラミング未経験でもGitを学ぶ必要はありますか?
はい、IT業界への転職を目指すなら必須スキルと言えます。求人票の必須条件にGitが記載されていることも多く、チーム開発ではGitの基本操作が前提となっています。プログラミング学習と並行してGitの基礎を身につけておくと、就職・転職活動で大きなアドバンテージになります。
Gitの学習にはどれくらいの期間が必要ですか?
基本的なコマンド操作であれば、1〜2週間ほど集中して学習すれば身につきます。毎日少しずつ実際に手を動かして練習することが重要です。ブランチ操作やコンフリクト解決、プルリクエストの運用まで含めると、実務で自信を持って使えるようになるまで1〜2ヶ月程度が目安です。
GUIツールとコマンドライン、どちらで学ぶべきですか?
最初はコマンドラインでの学習をおすすめします。コマンドの意味や仕組みを理解していないと、GUIツールの操作が何をしているのかわからなくなるためです。基本コマンドを一通りマスターした後にGUIツール(GitHub Desktop、Sourcetree、VS Code内蔵Gitなど)に移行すると、効率的に作業できるようになります。
コメント