プログラミングを学んでいると、必ず出会うのが 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の基本的なワークフローは、initaddcommit の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 addgit 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 ファイルで指定します。

📄 .gitignoreの例
# 依存パッケージ
node_modules/

# 環境変数ファイル
.env

# ビルド成果物
dist/
build/

# OSファイル
.DS_Store
Thumbs.db

🔧 SilkCodeの開発ツールもチェック

タイピング練習やクイズなど、エンジニア向けの無料ツールを公開中!

→ ツール一覧を見る

❓ よくある質問

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(変更も削除)を使います。

📚 関連記事