『Git の基本』を超えてチーム生産性を上げる
Git の基本コマンドは多くのエンジニアが使えますが、上級機能を活用するとチーム全体の効率が一段上がります。本記事では編集部の視点で、実務頻出の上級機能を公開情報をもとに整理します。CI/CD 実践 もご参考に。
rebase の活用
(1) interactive rebase:commit の再編成。(2) squash:複数 commit を統合。(3) fixup:レビュー指摘の取り込み。(4) onto:別ブランチへ移植。(5) 注意:push 済み commit は要慎重。
cherry-pick
(1) 特定 commit のみ取込。(2) hotfix の本番反映。(3) 複数 commit:範囲指定可。(4) conflicts 対応:手動修正。(5) 過剰使用注意:履歴複雑化。
worktree
(1) 複数ブランチを同時にチェックアウト。(2) レビューと開発の並行。(3) git worktree add。(4) node_modules 等が重複するが許容。(5) 大規模リポで威力。Claude Code 本番運用 もご参考に(エージェント並行作業)。
reflog
(1) HEAD の移動履歴。(2) 事故復旧:消えた commit の救済。(3) git reflog show。(4) git reset --hard HEAD@{2}等で復旧。(5) 30〜90日程度の保持。
bisect
(1) バグ混入 commit の特定。(2) git bisect start/good/bad。(3) 二分探索で効率的。(4) 自動化:git bisect run
Submodule vs Subtree
(1) Submodule:別リポを参照。(2) Subtree:別リポを取り込む。(3) Monorepo:両方の代替。(4) 判断軸:独立性 vs 一体性。(5) 運用負荷:Submodule の方が高め。Monorepo 設計 もご参考に。
失敗しがちなパターン
(1) push 済みブランチで force push:他人の作業破壊。(2) 巨大 commit:レビュー困難。(3) conflicts の安易な解決。(4) ブランチ整理せず:迷子。(5) secrets の commit。対策は、(1)主要ブランチは保護、(2)小さく分割、(3)双方の意図確認、(4)定期削除、(5)pre-commit hook、です。