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 は他者のプッシュを上書きしない安全な強制プッシュです。