Gitコア操作とリポジトリ管理の実践ガイド

Gitは分散型バージョン管理システムであり、チーム開発や個人プロジェクトにおいてコードの変更履歴を確実に追跡・復元するための基盤ツールです。本記事では、日常的な作業で頻出するコマンドを、実用性と安全性を重視して再構成・解説します。

環境準備と初期設定

Gitインストール後、対象ディレクトリで右クリック → 「Git Bash Here」を選択し、ターミナルを起動します。以下の設定は一度だけ実行すればよく、グローバル(全リポジトリ)に適用されます:

# 作者名を登録(例:佐藤太郎)
git config --global user.name "Taro Sato"

# メールアドレスを登録(GitHubアカウントと一致させる)
git config --global user.email "taro.sato@example.com"

# 設定内容の確認
git config --list | grep -E "user.name|user.email"

ローカルリポジトリの初期化とステージング

新規プロジェクトをGit管理下に置くには:

git init

変更を一時保存(ステージング)する際は、意図しないファイルを含めないよう、明示的なパス指定が推奨されます:

# 現在のディレクトリ以下のすべての変更をステージング
git add .

# 特定ファイルのみをステージング(安全な選択)
git add src/main.js README.md

# ステージングされた内容を確認
git status --short

コミットとメッセージのベストプラクティス

意味のあるコミットメッセージは、将来的なデバッグや共同作業の鍵となります:

git commit -m "feat: ログインAPIのレスポンス形式をJSON Schemaに準拠"
git commit -m "fix: モバイル端末でのナビゲーションバーのオーバーフロー問題"

リモートリポジトリとの連携

GitHubやGitLabなどのリモートホストと接続するには、まずリモートエイリアスを定義します(デフォルト名は origin):

# GitHubリポジトリ(HTTPS)を関連付け
git remote add origin https://github.com/username/project-name.git

# SSH経由の場合(事前に公開鍵登録済み)
git remote add origin git@github.com:username/project-name.git

# 登録済みリモートの一覧表示
git remote -v

初回プッシュ時は、ブランチ名とリモートの紐付け(upstream設定)を同時に行います:

git push -u origin main

ブランチ管理の効率的な手法

現代のGitワークフローでは、main(旧master)以外の機能ブランチを積極的に活用します:

# 新規機能ブランチの作成と即時切り替え
git switch -c feature/user-profile

# リモートブランチから最新状態を取得し、現在ブランチに統合
git pull origin main

# 現在のブランチをリモートにプッシュ(自動でupstream設定)
git push --set-upstream origin feature/user-profile

# ローカルブランチの削除(マージ済みの場合)
git branch -d feature/user-profile

# 強制削除(未マージの変更がある場合)
git branch -D feature/user-profile

リモート同期とネットワーク診断

リモートリポジトリとの整合性を保つために、定期的な同期と接続確認を行います:

# リモートの参照情報を更新(存在しなくなったブランチをローカルから削除)
git fetch --prune origin

# SSH接続テスト(GitHubの場合)
ssh -T git@github.com

# 接続成功時の出力例:Hi username! You've successfully authenticated...

ブランチの可視化と検索

複数のリモートやブランチが存在する場合、以下のように整理して把握します:

# 全ブランチ(ローカル+リモート)を階層表示
git branch -avv

# 特定キーワードを含むブランチを検索
git branch --all | grep "release"

# 現在のブランチ名を簡潔に出力(CI/CDスクリプトで利用可能)
git rev-parse --abbrev-ref HEAD

高度なプッシュ・プル操作

デフォルト動作を超えた柔軟な同期を行うには、明示的なソース/ターゲット指定が有効です:

# リモートのdevelopブランチを、ローカルのstagingブランチにフェッチ&マージ
git pull origin develop:staging

# ローカルのhotfixブランチを、リモートのmainに強制プッシュ(注意:履歴改竄)
git push --force-with-lease origin hotfix:main

--force-with-lease は他者のプッシュを上書きしない安全な強制プッシュです。

タグ: Git version-control command-line github branch-management

7月19日 00:49 投稿