🌳 ブランチ間の変更取り込み基本
複数ブランチでの作業では、2つの主要な変更取り込み方法があります:
📝 シナリオ1: mainの最新変更を取り込む
最も一般的機能開発中に、mainブランチに重要な更新(バグ修正など)が入ったケース。あなたの機能ブランチを最新の状態に保つために、mainの変更を取り込みます。
あなたは「feature/login」ブランチで認証機能を開発中。この間にチームの他のメンバーがmainブランチにセキュリティパッチを適用した。あなたの機能にもこのパッチが必要。
開発中は定期的にmainブランチの変更を取り込むと、最終的なマージ時のコンフリクト解決が簡単になります。
🔀 シナリオ2: 他の開発者のブランチから取り込む
協業あなたの機能が他の開発者が作業中の機能に依存している場合、その開発者のブランチから必要な変更を取り込みます。
あなたは「feature/dashboard」ブランチでユーザーダッシュボードを開発中。同僚の田中さんが「feature/api」ブランチでAPIエンドポイントを開発している。ダッシュボードは新しいAPIに依存しているため、田中さんの変更を取り込む必要がある。
他の開発者のブランチから変更を取り込む前に、必ずその開発者と相談しましょう。未完成の機能や実験的な変更が含まれている可能性があります。
📊 シナリオ3: rebaseで履歴を整理する
上級者向け長期間開発している機能ブランチをmainの最新状態に追いつかせつつ、履歴を綺麗に保ちたい場合に有効です。
「feature/payments」ブランチで2週間ほど決済機能を開発中。その間にmainブランチには多くの変更が入っており、今後のマージを円滑にするためにrebaseで履歴を整理したい。
rebaseは履歴を書き換えるため、すでに共有されているブランチでは使わないようにしましょう。他の開発者が同じブランチを使っている場合は特に注意が必要です。
⚙️ コンフリクト解決テクニック
変更を取り込む際、同じファイルの同じ箇所が編集されているとコンフリクト(競合)が発生します。効率的に解決するテクニックを学びましょう。
小さな単位で頻繁に変更を取り込むことで、大規模なコンフリクトを防げます。長期間放置すると解決が複雑になります。
🛠️ 実践的なワークフロー例
実際のチーム開発では、以下のようなワークフローがよく使われます:
📚 上級テクニック
複数のコミットをまとめたり並べ替えたりしながらrebaseする高度なテクニックです。
作業中の変更を一時的に退避させて、別の変更を取り込んでから戻す技術です。
これらの上級テクニックを習得すると、複雑な状況でも効率的に作業できるようになります。必要に応じてカスタムエイリアスやGitツールを活用しましょう。