GitとGitHubはエンジニアにとって必須のスキルです。バージョン管理・チーム開発・CI/CD連携まで、現代のソフトウェア開発に欠かせないツールを完全解説します。
Gitとは?バージョン管理の基礎
Gitは分散型バージョン管理システムです。ファイルの変更履歴を追跡し、チームでのコード共有を可能にします。GitHubはGitリポジトリのクラウドホスティングサービスで、世界中の開発者が利用しています。
Gitの基本コマンド一覧
# リポジトリ初期化
git init
# ファイルをステージングに追加
git add .
git add filename.txt
# コミット
git commit -m "feat: ユーザー認証機能を追加"
# リモートリポジトリに接続
git remote add origin https://github.com/username/repo.git
# プッシュ
git push origin main
# プル
git pull origin main
# 状態確認
git status
git log --oneline
ブランチ戦略(Git Flow・GitHub Flow)
# ブランチ作成・切り替え
git checkout -b feature/user-auth
git switch -c feature/user-auth # 新しい書き方
# ブランチ一覧
git branch -a
# マージ
git checkout main
git merge feature/user-auth
# リベース
git rebase main feature/user-auth
# ブランチ削除
git branch -d feature/user-auth
よく使うGit操作パターン
# 直前のコミットを修正
git commit --amend -m "修正したコミットメッセージ"
# 変更を一時退避
git stash
git stash pop
# コミットを取り消し(ファイルは残す)
git reset --soft HEAD~1
# 特定のコミットを取り込む
git cherry-pick abc1234
# タグを付ける
git tag -a v1.0.0 -m "Version 1.0.0"
git push origin --tags
GitHubのPull Request・Code Review
# PRのベストプラクティス
# 1. 小さい単位でコミット・PR作成
# 2. わかりやすいタイトル・説明文
# 3. レビュアーを適切にアサイン
# 4. CIが通ってからマージ
# .github/pull_request_template.md の例
## 変更内容
- ユーザー認証機能を追加
## テスト内容
- [ ] ユニットテスト追加
- [ ] E2Eテスト確認
## スクリーンショット(UIの場合)
GitHub ActionsでCI/CDパイプライン構築
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm ci
- run: npm test
- run: npm run build
Gitコミットメッセージのベストプラクティス
| プレフィックス | 用途 | 例 |
|---|---|---|
| feat | 新機能追加 | feat: ユーザーログイン機能を追加 |
| fix | バグ修正 | fix: パスワードリセットのバグを修正 |
| docs | ドキュメント更新 | docs: READMEにセットアップ手順を追加 |
| refactor | リファクタリング | refactor: 認証ロジックを分離 |
| test | テスト追加 | test: ユーザーAPIのテストを追加 |
まとめ
GitとGitHubはエンジニアとして働く上で必須のスキルです。基本コマンドをマスターし、適切なブランチ戦略とCI/CD連携を習得することで、チーム開発の生産性が大幅に向上します。本記事の内容を実践して、Gitを使いこなしましょう。