Git基本コマンドの実践操作 - add、commit、pushの正しい使い方を完全解説
2025/6/1
このサイトはアフィリエイト広告を利用しています。
目次
- - はじめに
- - ファイルの変更追跡とgit statusでの状態確認
- - git statusの基本的な使い方
- - git addによるステージング操作の詳細
- - git addの基本的な使用方法
- - インタラクティブなステージング
- - ステージングの取り消し
- - 効果的なコミットメッセージの書き方とgit commit
- - git commitの基本的な使い方
- - 効果的なコミットメッセージの構成
- - コミットメッセージのベストプラクティス
- - git logでのコミット履歴確認と活用方法
- - git logの基本的な使用方法
- - ログ表示のカスタマイズ
- - リモートリポジトリとの連携(git push、git pull)
- - git pushの基本的な使い方
- - git pushのオプション
- - git pullによる更新取得
- - プルとフェッチの違い
- - .gitignoreファイルの設定と管理
- - .gitignoreの基本的な記述方法
- - 言語・フレームワーク別の.gitignore例
- - すでに追跡されているファイルを.gitignoreに追加する場合
- - Git学習におすすめの書籍
- - 🔰 初心者向け(Git未経験〜基本操作習得まで)
- - 📈 中級者向け(基本操作習得済み〜チーム開発活用)
- - 🚀 上級者向け(内部仕組み理解〜高度な運用)
- - 📚 学習レベルの目安
- - まとめ
- - 出典リスト
はじめに
Git コマンドは現代のソフトウェア開発において必須のスキルです。特にgit add、git commit、git pushの3つのコマンドは、日常的な開発作業の中核を担っています。
これらのコマンドを理解することで、ファイルの変更管理からチーム開発まで、効率的なバージョン管理が可能になります。本記事では、初心者から中級者まで役立つ実践的な使い方を、具体例とともに解説していきます。
graph LR A[ワーキングディレクトリ] -->|git add| B[ステージングエリア] B -->|git commit| C[ローカルリポジトリ] C -->|git push| D[リモートリポジトリ] style A fill:#e1f5fe style B fill:#fff3e0 style C fill:#f3e5f5 style D fill:#e8f5e8
Gitワークフローの基本構造
ファイルの変更追跡とgit statusでの状態確認
Gitでの作業を始める前に、現在の状態を把握することが重要です。git status
コマンドは、ワーキングディレクトリとステージングエリアの状態を表示し、どのファイルが変更されているかを確認できます。
git statusの基本的な使い方
# 現在の状態を確認git status
# 簡潔な表示形式で確認git status -s
git status
で表示される主な状態は以下の通りです:
状態 | 説明 | 表示例 |
---|---|---|
Untracked | 追跡されていない新しいファイル | Untracked files: newfile.txt |
Modified | 変更されたファイル(未ステージ) | Changes not staged: modified.txt |
Staged | ステージングされたファイル | Changes to be committed: staged.txt |
ヒント
開発作業を始める前に必ずgit status
で現在の状態を確認する習慣をつけると、意図しないファイルのコミットを防げます。
git addによるステージング操作の詳細
git add
コマンドは、ワーキングディレクトリの変更をステージングエリア(インデックス)に追加する役割を担います。このステップにより、次のコミットに含める変更を選択できます。
git addの基本的な使用方法
# 特定のファイルをステージングgit add filename.txt
# 複数のファイルを同時にステージングgit add file1.txt file2.txt
# 現在のディレクトリのすべての変更をステージングgit add .
# リポジトリ全体のすべての変更をステージングgit add -A
インタラクティブなステージング
# 変更の一部のみを選択してステージングgit add -p filename.txt
# インタラクティブモードでファイル選択git add -i
重要
git add .
とgit add -A
の違いに注意してください。git add .
は現在のディレクトリ以下のみが対象ですが、git add -A
はリポジトリ全体が対象となります。
ステージングの取り消し
誤ってステージングしたファイルは以下の方法で取り消せます:
# 特定のファイルのステージングを取り消しgit reset HEAD filename.txt
# すべてのステージングを取り消しgit reset HEAD
効果的なコミットメッセージの書き方とgit commit
git commit
コマンドは、ステージングエリアの内容をローカルリポジトリに記録します。良いコミットメッセージを書くことは、後の開発作業やチーム連携において非常に重要です。
git commitの基本的な使い方
# 基本的なコミットgit commit -m "コミットメッセージ"
# ステージングとコミットを同時実行(追跡済みファイルのみ)git commit -am "変更内容の説明"
# 詳細なコミットメッセージを作成git commit
効果的なコミットメッセージの構成
良いコミットメッセージは以下の要素を含みます:
- 件名行(50文字以内) - 変更の要約
- 空行
- 本文(72文字で改行) - 変更の理由と詳細
# 良いコミットメッセージの例git commit -m "feat(auth): ユーザー認証機能を追加
JWTトークンベースの認証システムを実装しました。- ログイン/ログアウト機能- トークンの自動更新機能- セッション管理の改善
Fixes #123"
コミットメッセージのベストプラクティス
項目 | 推奨 | 非推奨 |
---|---|---|
件名の書き方 | feat: ユーザー認証機能を追加 | バグ修正 |
時制 | 命令形(動詞の原形) | 過去形や現在進行形 |
文字数 | 件名50文字、本文72文字で改行 | 制限を超える長文 |
内容 | 原子的で1つの変更に焦点 | 複数の無関係な変更を混在 |
補足
Conventional Commitsという標準的なコミットメッセージ形式を採用すると、チーム内での一貫性が保てます。feat:
, fix:
, docs:
などのプレフィックスを使用します。
git logでのコミット履歴確認と活用方法
git log
コマンドは、コミット履歴を表示し、プロジェクトの変更の流れを把握するのに役立ちます。
git logの基本的な使用方法
# 基本的なログ表示git log
# 一行で簡潔にログ表示git log --oneline
# グラフ形式でブランチの分岐を表示git log --graph --oneline
# 特定の期間のログを表示git log --since="2025-01-01" --until="2025-06-01"
# 特定のファイルの変更履歴git log -- filename.txt
ログ表示のカスタマイズ
# カスタム形式でのログ表示git log --pretty=format:"%h - %an, %ar : %s"
# 統計情報付きのログ表示git log --stat
# ファイルの変更内容も含めて表示git log -p
ヒント
git log --graph --oneline --all
は、すべてのブランチの履歴を視覚的に確認できる便利なコマンドです。エイリアスとして設定しておくと効率的です。
リモートリポジトリとの連携(git push、git pull)
ローカルでの作業が完了したら、git push
でリモートリポジトリに変更を送信し、git pull
で他の開発者の変更を取得します。
git pushの基本的な使い方
# 現在のブランチをリモートにプッシュgit push
# 特定のブランチを指定してプッシュgit push origin main
# 初回プッシュ時に上流ブランチを設定git push -u origin feature-branch
git pushのオプション
# 強制プッシュ(注意が必要)git push -f origin main
# より安全な強制プッシュgit push --force-with-lease origin main
# すべてのブランチをプッシュgit push --all origin
# タグもプッシュgit push --tags origin
注意
git push -f
(強制プッシュ)は、リモートの履歴を上書きする危険な操作です。チーム開発では--force-with-lease
オプションを使用し、ローカルが最新の状態でのみ強制プッシュを実行してください。
git pullによる更新取得
# 現在のブランチを更新git pull
# 特定のリモートブランチから更新git pull origin main
# リベースしながら更新git pull --rebase origin main
プルとフェッチの違い
コマンド | 動作 | 使用場面 |
---|---|---|
git pull | フェッチ + マージを同時実行 | 簡単に最新状態に更新したい時 |
git fetch | リモートの変更を取得のみ | 変更内容を確認してからマージしたい時 |
sequenceDiagram participant L as ローカルリポジトリ participant R as リモートリポジトリ Note over L,R: 基本的なGitワークフロー L->>L: git add (ステージング) L->>L: git commit (ローカルコミット) L->>R: git push (リモートに送信) R->>L: git pull (リモートから取得)
Gitにおけるローカルとリモートの連携フロー
.gitignoreファイルの設定と管理
.gitignore
ファイルは、Gitに追跡させたくないファイルやディレクトリを指定するために使用します。これにより、不要なファイルがリポジトリに含まれることを防げます。
.gitignoreの基本的な記述方法
# コメント行
# 特定のファイルを無視config.local.json
# 拡張子でファイルを無視*.log*.tmp
# ディレクトリを無視node_modules/.env/
# 例外の指定(!で除外を解除)*.log!important.log
# パターンマッチングtemp-*
言語・フレームワーク別の.gitignore例
# Node.js プロジェクトnode_modules/npm-debug.log*.envdist/
# Python プロジェクト__pycache__/*.pyc.pytest_cache/venv/
# 一般的な開発環境ファイル.DS_Store.vscode/.idea/*.swp
ヒント
GitHub公式のgitignore テンプレートを参考にすると、言語やフレームワークに適した設定が簡単に見つかります。
すでに追跡されているファイルを.gitignoreに追加する場合
# ファイルをGitの追跡から除外(ファイルは削除されない)git rm --cached filename.txt
# ディレクトリを追跡から除外git rm -r --cached directory/
# 変更をコミットgit commit -m "update .gitignore"
Git学習におすすめの書籍
さらなるGitスキル向上のために、レベル別におすすめの書籍をご紹介します。
🔰 初心者向け(Git未経験〜基本操作習得まで)
いちばんやさしいGit&GitHubの教本 第2版
- 対象者: Git完全未経験者
- 特徴: 図解豊富で基礎から実践まで段階的に学習可能
- おすすめポイント: チーム開発のワークフローまで含む実践的な内容
動かして学ぶ!Git入門
- 対象者: 手を動かしながら学びたい初心者
- 特徴: 実際の操作を通じて基本から応用まで習得
- おすすめポイント: ブランチ管理やマージの実践的なスキルが身につく
わかばちゃんと学ぶ Git使い方入門
- 対象者: 堅い技術書が苦手な方
- 特徴: マンガ形式で楽しく学習できる
- おすすめポイント: 演習問題付きで確実にスキルが定着
📈 中級者向け(基本操作習得済み〜チーム開発活用)
GitHub実践入門 ~Pull Requestによる開発の変革
- 対象者: GitHubを使ったチーム開発を学びたい方
- 特徴: Pull Request中心の現代的な開発手法を詳解
- おすすめポイント: 実際の開発現場で即戦力になれる知識
ゼロから学ぶGit/GitHub 現代的なソフトウェア開発のために
- 対象者: Git仕組みを根本から理解したい方
- 特徴: SNSで話題の名講義が書籍化、理論と実践のバランス良し
- おすすめポイント: 多人数開発の手法まで網羅的に解説
🚀 上級者向け(内部仕組み理解〜高度な運用)
実用Git 第3版
- 対象者: Gitを業務で高度に活用したい方
- 特徴: オライリー出版の定番書、576ページの大容量
- おすすめポイント: プロフェッショナルレベルの知識を網羅
📚 学習レベルの目安
レベル | 現在のスキル | 推奨書籍タイプ |
---|---|---|
初心者 | Gitコマンドを知らない | 図解豊富、実践重視の入門書 |
中級者 | 基本操作はできるがチーム開発未経験 | GitHub活用、ワークフロー中心の実践書 |
上級者 | 業務で使用しているが深い理解が欲しい | 内部仕組み、高度な運用を扱う専門書 |
効果的な学習方法
書籍での学習と並行して、実際のプロジェクトでGitを使用することで、理論と実践の両面からスキルを向上させることができます。本記事で解説した内容も、日常的な開発作業で積極的に活用してみてください。
これらの書籍を通じて、Git 実践スキルをさらに深化させ、プロフェッショナルなエンジニアとしてのレベルアップを図りましょう。
まとめ
Git コマンドの基本操作であるgit add、git commit、git pushを正しく理解し使いこなすことで、効率的なバージョン管理が可能になります。
重要なポイントをおさらいすると:
- git statusで現在の状態を常に確認する
- git addでステージングエリアに必要な変更のみを追加する
- git commitでは原子的で分かりやすいメッセージを心がける
- git logで履歴を確認し、プロジェクトの流れを把握する
- git push/pullでチームとの連携を円滑に行う
- .gitignoreで不要なファイルの追跡を防ぐ
これらのコマンドを日常的に使いこなすことで、個人開発からチーム開発まで、あらゆる場面で活用できる強固なGitスキルが身につきます。継続的な実践を通じて、より高度なGit操作にも挑戦していきましょう。
出典リスト
公式リソース(Official Resources)
参考サイト(Reference Sites)