プログラミングを学んでいると、必ず出会うのが Git です。Gitは世界中の開発者が使っているバージョン管理システムで、コードの変更履歴を記録し、チームでの共同作業を可能にします。この記事では、Gitの基本コマンドからブランチ操作まで、実践例とともに解説します。
📖 Gitとは? — バージョン管理の基本
Gitは、Linus Torvaldsが2005年にLinuxカーネル開発のために作った分散型バージョン管理システムです。従来の集中型と違い、各開発者がリポジトリの完全なコピーを持つため、オフラインでも作業できます。
履歴管理
すべての変更が記録され、いつでも過去の状態に戻せる
チーム開発
複数人が同時に同じプロジェクトで作業可能
ブランチ
機能ごとに独立した作業空間を作れる
⚙️ 初期設定 — Gitを使う準備
Gitをインストールしたら、まずユーザー名とメールアドレスを設定します。この情報はコミット履歴に記録されます。
# ユーザー名の設定
git config --global user.name "あなたの名前"
# メールアドレスの設定
git config --global user.email "your@email.com"
# 設定確認
git config --list🚀 基本コマンド — init・add・commit
Gitの基本的なワークフローは、init → add → commit の3ステップです。
# 新しいリポジトリを作成
mkdir my-project
cd my-project
git init
# ファイルを作成してステージング
echo "Hello Git" > README.md
git add README.md
# コミット(変更を記録)
git commit -m "初回コミット: READMEを追加"💡 Gitの3つのエリア
ワーキングディレクトリ:実際にファイルを編集する場所
ステージングエリア:次のコミットに含める変更を準備する場所(git add)
リポジトリ:コミットされた変更が保存される場所(git commit)
🔍 状態確認 — status・log・diff
現在の状態や過去の履歴を確認するコマンドは、日常的に最もよく使います。
# 現在の状態を確認
git status
# コミット履歴を表示
git log --oneline
# 変更内容の詳細を確認
git diff
# ステージ済みの変更を確認
git diff --staged🌿 ブランチ — 並行開発の基本
ブランチは、Gitの最も強力な機能のひとつです。メインのコードに影響を与えずに、新機能の開発やバグ修正を独立した環境で行えます。
# ブランチ一覧を表示
git branch
# 新しいブランチを作成
git branch feature-login
# ブランチを切り替え
git checkout feature-login
# 作成と切り替えを同時に行う(ショートカット)
git checkout -b feature-login🔄 マージ — ブランチの統合
機能が完成したら、ブランチをメインブランチに統合(マージ)します。
# mainブランチに切り替え
git checkout main
# feature-loginブランチをマージ
git merge feature-login
# 不要になったブランチを削除
git branch -d feature-login⚠️ コンフリクトが発生したら
同じファイルの同じ箇所を別々のブランチで編集すると、コンフリクトが発生します。その場合は、ファイルを手動で編集して解決し、git add → git commit で完了します。
🌐 リモート — GitHubとの連携
GitHubやGitLabなどのリモートリポジトリと連携することで、コードをクラウドに保存し、チームで共有できます。
# リモートリポジトリを追加
git remote add origin [URL]
# ローカルの変更をプッシュ
git push -u origin main
# リモートの変更を取得
git pull origin main
# リモートリポジトリをクローン
git clone [URL]🛠️ よく使う便利コマンド
| コマンド | 説明 |
|---|---|
git stash | 作業中の変更を一時退避 |
git stash pop | 退避した変更を復元 |
git reset HEAD~1 | 直前のコミットを取り消す |
git log --graph | ブランチの分岐を視覚的に表示 |
git cherry-pick [hash] | 特定のコミットだけを取り込む |
git rebase main | ブランチの基点を更新する |
🚫 .gitignore — 不要なファイルを除外
プロジェクトに含めたくないファイル(ビルド成果物、環境設定など)は .gitignore ファイルで指定します。
# 依存パッケージ
node_modules/
# 環境変数ファイル
.env
# ビルド成果物
dist/
build/
# OSファイル
.DS_Store
Thumbs.db❓ よくある質問
GitとGitHubの違いは?
Gitはバージョン管理ツールそのもので、ローカルで動作します。GitHubはGitリポジトリをクラウド上でホスティングするサービスで、チームコラボレーション機能(Pull Requestなど)を提供します。
コミットメッセージの書き方のコツは?
「何をしたか」を簡潔に書きます。例:ログイン機能を追加、ヘッダーのレイアウトを修正。英語の場合は命令形(Add、Fix、Update)で始めるのが一般的です。
git pullとgit fetchの違いは?
git fetchはリモートの情報を取得するだけで、ローカルのファイルは変更されません。git pullはfetch + mergeを一度に行います。安全に確認したい場合はfetchを使いましょう。
間違えてcommitした場合の対処法は?
直前のコミットを修正するには git commit --amend を使います。コミット自体を取り消すには git reset HEAD~1(変更は残る)や git reset --hard HEAD~1(変更も削除)を使います。