Git使い方完全ガイド2025:初心者から実践まで基本コマンドを徹底解説
はじめに
現代のソフトウェア開発において、Gitは欠かせないツールです。個人開発からチーム開発まで、あらゆる開発現場で「Gitって使えますか?」と聞かれる時代になりました。
この記事では、Git初心者の方が基本操作をマスターし、実際の開発現場で活用できるレベルまでの知識を、わかりやすく体系的に解説します。
Gitとは?なぜ必要なのか
Gitの基本概念
Gitは、分散型バージョン管理システムの代表格です。簡単に言えば、以下のようなことができる便利なツールです:
- ファイルの変更履歴を記録・管理
- 複数人での共同作業をスムーズに
- 過去のバージョンに簡単に戻せる
- 異なる機能を並行して開発
Gitがなかった時代の問題
従来のファイル管理では、以下のような問題がありました:
プロジェクト_最終版.txt
プロジェクト_最終版_修正.txt
プロジェクト_最終版_修正_本当に最終.txt
プロジェクト_最終版_修正_本当に最終_v2.txt
この「ファイル名地獄」から解放してくれるのがGitです。
Gitの主な特徴
1. 分散型システム
- 各開発者のパソコン(ローカル)に完全な履歴が保存
- ネットワークがなくても作業可能
- サーバーに障害が発生しても作業継続可能
2. 高速な処理
- ファイルの差分のみを記録するため処理が高速
- 大規模なプロジェクトでも軽快に動作
3. 柔軟なワークフロー
- 様々な開発スタイルに対応
- ブランチ機能により並行開発が容易
GitとGitHubの違い
初心者が混同しがちなGitとGitHubの違いを明確にしましょう:
Git
- バージョン管理システム(ツール)
- ローカルのパソコンにインストールして使用
- コマンドラインで操作
GitHub
- Gitを使ったWebサービス(プラットフォーム)
- オンライン上でリポジトリを管理・共有
- Web上でGitの機能を視覚的に操作可能
関係性:GitHubはGitを活用したクラウドサービスです。
Gitの環境構築
インストール方法
Windows
- Git公式サイトからダウンロード
- インストーラーを実行(基本的にデフォルト設定でOK)
- コマンドプロンプトまたはPowerShellで確認
Mac
# Homebrewを使用する場合
brew install git
# またはXcode Command Line Toolsとして自動インストール
xcode-select --install
初期設定
Gitを使い始める前に、ユーザー情報を設定します:
# ユーザー名の設定
git config --global user.name "あなたの名前"
# メールアドレスの設定
git config --global user.email "your-email@example.com"
# 設定確認
git config --list
Gitの基本構造を理解する
3つのエリア
Gitは以下の3つのエリアでファイルを管理します:
1. ワークツリー(作業エリア)
- 実際にファイルを編集する場所
- 普段コードを書いているフォルダ
2. ステージングエリア(インデックス)
- コミット予定のファイルを準備する場所
git addコマンドでここにファイルを追加
3. リポジトリ
- ファイルの変更履歴を保存する場所
git commitでステージングエリアの内容をここに記録
ローカルリポジトリとリモートリポジトリ
ローカルリポジトリ
- あなたのパソコン内にある履歴保存場所
- 個人の作業用
リモートリポジトリ
- ネットワーク上(GitHub等)にある履歴保存場所
- チームで共有する用
基本コマンドを覚えよう
プロジェクトの開始
新規プロジェクトの場合
# 新しいフォルダでGitを開始
mkdir my-project
cd my-project
git init
既存のプロジェクトをダウンロードする場合
# GitHubなどからプロジェクトを複製
git clone https://github.com/username/project-name.git
日常的な作業フロー
1. ファイルの状態を確認
# 現在の状況を確認
git status
出力例の見方:
Untracked files: 新しく作ったファイル(まだGit管理外)Changes not staged: 修正したファイル(まだaddしていない)Changes to be committed: add済みでcommit待ちのファイル
2. 変更をステージングエリアに追加
# 特定のファイルを追加
git add ファイル名
# すべての変更ファイルを追加
git add .
# 特定の拡張子のファイルのみ追加
git add *.js
3. 変更を記録(コミット)
# メッセージ付きでコミット
git commit -m "機能Aを追加"
# より詳細なメッセージを書く場合(エディタが開く)
git commit
良いコミットメッセージの書き方:
- 何をしたかを簡潔に記述
- 「修正」「更新」より具体的に
- 例:「ログイン機能を追加」「バグ修正:計算エラーを解消」
4. リモートリポジトリとの同期
# リモートからの最新変更を取得
git pull
# ローカルの変更をリモートに送信
git push
履歴の確認
# コミット履歴を表示
git log
# 簡潔な形式で表示
git log --oneline
# 最近の3件のみ表示
git log -3
変更内容の確認
# ワークツリーとステージングエリアの差分
git diff
# ステージングエリアと最新コミットの差分
git diff --staged
# 特定のファイルの差分
git diff ファイル名
ブランチを使った並行開発
ブランチとは
ブランチは、「履歴の枝分かれ」を作る機能です。以下のようなメリットがあります:
- 本体に影響を与えずに新機能を開発
- 複数人が同時に異なる作業を進行
- 実験的な変更を安全に試行
ブランチの基本操作
ブランチの作成と切り替え
# 新しいブランチを作成
git branch feature-login
# ブランチを切り替え
git checkout feature-login
# 作成と切り替えを同時に実行
git checkout -b feature-login
ブランチ一覧の確認
# ローカルブランチ一覧
git branch
# リモートブランチも含めて表示
git branch -a
ブランチの削除
# マージ済みブランチを削除
git branch -d feature-login
# 強制削除(マージされていなくても削除)
git branch -D feature-login
ブランチのマージ
開発が完了したブランチを元のブランチ(通常はmain)に統合する作業です。
基本的なマージ手順
# 1. メインブランチに切り替え
git checkout main
# 2. 最新状態に更新
git pull
# 3. 作業ブランチをマージ
git merge feature-login
# 4. リモートに反映
git push
マージの種類
Fast-forwardマージ
- メインブランチに変更がない場合
- 単純にポインタを前に進めるだけ
- マージコミットは作られない
Non-fast-forwardマージ
- メインブランチにも変更がある場合
- 新しいマージコミットが作成される
- 両方の変更履歴が統合される
競合(コンフリクト)の解決
競合が発生する場面
同じファイルの同じ場所を複数人が変更した場合に発生します。
# マージ時に競合が発生した場合の表示例
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
競合の解決手順
1. 競合ファイルを確認
git status
2. 競合マーカーを見つける
競合が発生したファイルを開くと、以下のような表示があります:
<<<<<<< HEAD
メインブランチの変更内容
=======
作業ブランチの変更内容
>>>>>>> feature-branch
3. 手動で修正
- どちらの変更を採用するか決定
- 競合マーカー(
<<<<<<<,=======,>>>>>>>)を削除 - 必要に応じて両方の変更を組み合わせ
4. 修正をコミット
git add 修正したファイル名
git commit -m "競合を解決"
競合解決のツール
コマンドラインでの解決
# どちらか一方を選択(メインブランチを優先)
git merge --strategy-option ours
# どちらか一方を選択(作業ブランチを優先)
git merge --strategy-option theirs
GUIツールでの解決
多くのエディタやGitクライアントが競合解決をサポートしています:
- VS Code
- SourceTree
- GitKraken
リモートリポジトリとの連携
GitHubとの連携手順
1. GitHubでリポジトリを作成
- GitHubにログイン
- 「New repository」をクリック
- リポジトリ名を入力して作成
2. ローカルとリモートを連携
# リモートリポジトリを登録
git remote add origin https://github.com/username/repository-name.git
# 最初のプッシュ
git branch -M main
git push -u origin main
3. 日常的な同期作業
# リモートから最新を取得
git fetch # 情報のみ取得
git pull # 取得してマージも実行
# ローカルの変更をリモートに送信
git push
リモートブランチの操作
リモートブランチの確認
# リモートの状況を取得
git fetch
# リモートブランチ一覧
git branch -r
リモートブランチでの作業
# リモートブランチを基に新しいローカルブランチを作成
git checkout -b local-branch origin/remote-branch
# リモートにブランチをプッシュ
git push origin local-branch
# リモートブランチを削除
git push origin --delete remote-branch
実践的なGitワークフロー
GitHub Flow(推奨ワークフロー)
多くのチームで採用されている、シンプルで効果的なワークフローです:
1. main ブランチは常にデプロイ可能な状態を維持
# main ブランチは本番環境の状態
git checkout main
git pull
2. 新機能は専用ブランチで開発
# 機能ごとにブランチを作成
git checkout -b feature/user-authentication
3. こまめにコミット
# 小さな単位で変更をコミット
git add .
git commit -m "ログインフォームのHTML作成"
git add .
git commit -m "ログイン処理のAPI実装"
4. リモートにプッシュしてプルリクエスト
# 作業ブランチをリモートにプッシュ
git push origin feature/user-authentication
その後、GitHub上でプルリクエスト(Pull Request)を作成します。
5. コードレビュー後にマージ
チームメンバーによるコードレビューを受けて、問題なければmainブランチにマージします。
チーム開発のベストプラクティス
コミットメッセージのルール
# 良い例
git commit -m "Add: ユーザー登録機能"
git commit -m "Fix: ログイン時のバリデーションエラー"
git commit -m "Update: パスワード強度チェック機能を改善"
# 悪い例
git commit -m "修正"
git commit -m "色々変更"
git commit -m "一旦コミット"
ブランチ命名規則
# 機能追加
feature/user-profile
feature/payment-system
# バグ修正
fix/login-error
fix/memory-leak
# 緊急修正
hotfix/security-patch
# 実験的な変更
experiment/new-ui-design
プルリクエストの活用
- コードレビューの機会を提供
- 変更内容の説明を詳細に記述
- 自動テストとの連携
- デプロイ前の最終確認
トラブルシューティング
よくある問題と解決方法
1. 間違ったファイルをコミットしてしまった
# 直前のコミットを取り消し(変更は保持)
git reset --soft HEAD^
# 直前のコミットを完全に取り消し
git reset --hard HEAD^
2. まだプッシュしていないコミットメッセージを修正したい
# 直前のコミットメッセージを修正
git commit --amend -m "正しいコミットメッセージ"
3. 作業を一時的に保存したい
# 現在の変更を一時保存
git stash
# 一時保存した変更を戻す
git stash pop
# 保存リストを確認
git stash list
4. 特定のファイルを過去の状態に戻したい
# ワークツリーの変更を取り消し
git checkout -- ファイル名
# 特定のコミット時点の状態に戻す
git checkout コミットハッシュ ファイル名
5. プッシュが拒否される
# リモートの変更を先に取り込む
git pull
# 競合があれば解決してから再プッシュ
git push
.gitignoreファイルの活用
Git管理から除外したいファイルを指定できます:
# OS関連
.DS_Store
Thumbs.db
# 開発環境関連
node_modules/
.env
.vscode/
# ビルド成果物
dist/
build/
*.log
# 一時ファイル
*.tmp
*.bak
*~
GUIツールの紹介
コマンドライン操作に慣れない方向けのツール:
無料のGitクライアント
SourceTree
- 視覚的にわかりやすいインターフェース
- Windows・Mac対応
- Atlassian社製
GitHub Desktop
- GitHub公式クライアント
- シンプルで初心者向け
- GitHub連携が簡単
GitKraken
- 美しいUI
- 無料版と有料版あり
- 高機能な競合解決ツール
エディタ統合
VS Code
- Git機能が標準で統合
- 差分表示が見やすい
- 競合解決がGUIで可能
IntelliJ IDEA
- 強力なGit統合機能
- 履歴の可視化
- 高度なマージツール
学習を続けるために
次のステップ
-
高度なGitコマンドの習得
git rebase(履歴の整理)git cherry-pick(特定コミットの取り込み)git bisect(バグの原因調査)
-
CI/CDとの連携
- GitHub Actions
- 自動テスト・デプロイ
-
大規模開発への対応
- Git Flow
- モノレポ管理
学習リソース
公式ドキュメント
- Git公式ドキュメント
- 信頼性の高い情報源
- 日本語版も利用可能
おすすめの学習サイト
- サル先生のGit入門:初心者にわかりやすい
- ドットインストール:動画で学習可能
- Atlassian Git Tutorial:実践的な内容
書籍
- 「Pro Git」(無料でオンライン公開)
- 「いちばんやさしいGit&GitHubの教本」
- 「Git実用入門」
練習方法
1. 個人プロジェクトでの実践
- 小さなプロジェクトを始める
- 意識的にブランチを使い分ける
- 様々なGitコマンドを試す
2. オープンソースプロジェクトへの参加
- GitHub上のプロジェクトに貢献
- プルリクエストを作成してみる
- コードレビューの経験を積む
3. チーム開発のシミュレーション
- 友人・同僚と小さなプロジェクト
- 意図的に競合を発生させて解決練習
- 様々なワークフローを試行
まとめ
Gitマスターへの道筋
初心者レベル(最初の1ヶ月)
- ✅ Git・GitHubの基本概念理解
- ✅
init,add,commit,push,pullの習得 - ✅ 基本的なワークフローの実践
中級者レベル(2-3ヶ月目)
- ✅ ブランチ操作の習得
- ✅ マージと競合解決
- ✅ リモートリポジトリの活用
上級者レベル(6ヶ月目以降)
- ✅ 高度なGitコマンド
- ✅ チーム開発でのワークフロー設計
- ✅ トラブルシューティング能力
継続学習のポイント
- 毎日使う:小さなプロジェクトでも継続使用
- エラーを恐れない:失敗から学ぶ姿勢が大切
- コミュニティに参加:GitHubでのオープンソース活動
- 新機能をキャッチアップ:Gitは継続的に進化している
最後に
Gitは最初こそ難しく感じるかもしれませんが、基本的な概念とコマンドを理解すれば、開発効率が飛躍的に向上します。
現代のソフトウェア開発では、Gitなしでは仕事にならないと言っても過言ではありません。この記事で紹介した基本操作をマスターして、ぜひ実際のプロジェクトで活用してください。
重要なのは完璧を目指さず、まずは使い始めることです。エラーが発生しても、それは学習の機会です。コマンド操作に慣れない方は、GUIツールから始めて徐々にコマンドラインに移行する方法もおすすめです。
あなたのプログラミングスキル向上の一助となれば幸いです。継続的な学習と実践を通じて、Gitマスターを目指しましょう!
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<オンライン無料>ゼロから始めるPython爆速講座
