コンフリクトとは?
チーム開発では、複数の開発者が同じコードベースを編集することが一般的です。この際、異なる変更が同じファイルの同じ箇所に加えられると「コンフリクト(衝突)」が発生します。コンフリクトは、Gitなどのバージョン管理システムが自動的に変更を統合できない場合に起こります。本研修では、それぞれが別のところを担当するケースが多いためほとんど起きないとは思いますが、万が一のために解決方法を知っておくと良いでしょう。
コンフリクトが発生する例
以下は、コンフリクトが発生する典型的な例です:
-
開発者Aが
mainブランチから新しいブランチを作成し、コードを編集してプッシュ。 -
開発者Bも同じ箇所を編集し、
mainブランチに変更をマージ。 -
開発者Aが自分の変更を
mainにマージしようとすると、コンフリクトが発生。
コンフリクトの解決手順
-
コンフリクトの確認
コンフリクトが発生すると、Gitは該当するファイルをマークします。git statusコマンドで確認できます。 -
該当ファイルを編集
コンフリクト箇所は以下のように表示されます:<<<<<<< HEAD 現在のブランチの変更 ======= 他のブランチの変更 >>>>>>> branch-nameHEAD部分が現在のブランチの変更、branch-name部分が他のブランチの変更です。 -
より良いコードを選ぶ
- コードの意図を理解する:どちらの変更がプロジェクトの目的に合致しているかを考えます。
- チームと相談:不明点があれば、変更を加えた開発者に確認します。
- 統合する:必要に応じて、両方の変更を組み合わせることも可能です。
-
解決後の確認
コンフリクトを解消したら、ファイルを保存し、以下のコマンドを実行します:git add <ファイル名> git commit
コンフリクトを防ぐためのコツ
-
頻繁にプルする:
git pullを定期的に実行し、最新の変更を取り込む。 - 小さな変更を心がける:大きな変更はコンフリクトのリスクを高めます。
- チームでのコミュニケーション:誰がどの部分を編集しているかを共有する。
まとめ
コンフリクトはチーム開発では避けられないものですが、適切に対処することでプロジェクトの品質を保つことができます。コンフリクト解消のスキルを磨き、チームで効率的に開発を進めましょう!