本記事は
ブログ書き初めウィーク
7日目の記事です。
📝
6日目
▶▶ 本記事 ▶▶
8日目
📅
はじめに
上京して関東のライブ会場にもすぐ行けるようになり、オタク活動が加速している新人の中塚です。
大学では生殖補助医療学を専攻しており、マウスや人の血液を使って不妊治療の研究をしていました。
現在はIT未経験からフロントエンドエンジニアを目指し、Reactを学びながら画面実装のスキルを磨いています。
そんな私が、現場で最も苦労したのがGitです。
Gitを使い始めたばかりの私が、コンフリクトを減らすポイントを皆さんに共有できればと思います。
これからGitを学ぼうとしている方や初心者の方に、少しでも参考になれば嬉しいです!
コンフリクトとは
コンフリクトとは、データに重複や競合が発生している状態のことです。複数人で開発を進めている際に、同じファイルの同じ部分を異なる内容で変更した場合に発生します。
下の図を使って説明します。
1. AさんがブランチAを作成して実装を進めている間、BさんもブランチBを切って実装を開始します。
2. Aさんが実装を完了し、ブランチAをマージします。
3.BさんがブランチBをマージしようとすると、Aさんの変更が反映されていない状態でdevelopブランチにマージされるため、どちらが正しいのか判断がつかなくなります。 これがコンフリクトです。

Gitは通常、変更を自動的にマージしますが、コンフリクトが発生した場合は手動で解決しなければなりません。
コンフリクトは避けられないものですが、正しい手順で解消することで、チーム開発がスムーズに進みます。
コンフリクト解消のポイント
ポイント1: 作業ブランチの最新化をする!
常に作業ブランチを最新の状態に保ち、作業ブランチとリモートリポジトリの差をためないことが重要です。
コンフリクトは完全に避けることはできませんが、発生を最小限に抑えることができます。また、定期的に最新化を行うことで、コンフリクトの解消作業が楽になります。
私も当初は作業に集中するあまり最新化を忘れがちでしたが、毎朝決まったタイミングで最新化を行うよう習慣づけています。
ポイント2: チーム内でコミュニケーションを取り、状況を把握しておく!
コミュニケーションを密に取り、状況を把握しておくことがコンフリクトを減らすカギとなります。
Gitのメリットは、複数の開発者が同時に作業できることです。しかし、同じファイルを複数人で同時に編集すると、どうしてもコンフリクトが発生します。コミュニケーションをとることが、同時に同じファイルを操作しないように計画を立てたり、コンフリクトが発生しやすそうな場合、こまめにマージされていないかを確認することにつながり、コンフリクトの予防になっています。
私が所属する開発チームでは、毎日1時間程度集まり今後の作業計画や進捗の確認、認識のすり合わせを実施しています。
これにより、各メンバーが現在取り組んでいる内容や進行中のタスクについて、常に情報を意識的に共有することができています。特に、作業分担や優先順位を明確にしてお互いの作業内容を確認することで、コンフリクトの発生を未然に防ぎ、チーム全体の作業効率が向上しています。万が一コンフリクトが発生しても、迅速かつ効果的に解決策を見出すことができるようになっています。
ポイント3: 一度のMRで出す内容を少なくする!
MR(マージリクエスト)を分割してこまめに develop ブランチにマージすることで、コンフリクトの発生を減らすことができます。
最近は、1つのタスクを分割して、小さな作業を積み重ねるようにしています。
また、タスクを細かく分割することで、2つのメリットを感じました。まず1つ目は、作業に時間がかかり、2~3日同じブランチで作業していると、他の開発者の変更を取り込むのに時間がかかっていたのですが、分割することで取り込む量や回数を減らすことができました。
2つ目は、精神的に安心して実装に取り組めるようになったことです。私は進捗に不安を感じやすいのですが、タスクを分けることで「正しい方向で進んでいる」という安心感を持てるようになりました。
まとめ
Gitを使い始めたばかりの頃は失敗の連続で辛い時期もありましたが、方法を覚えるだけでなく、「なぜそれを行うのか」を理解することで自信がつきました。また、Gitについて学習を通じてコンフリクトがなぜ起こるのか理解が深まり、問題の原因や解決策が見えてくるようになりました。
まだGitの理解は完全ではありませんが、これからも少しずつ学んでいき、成長し続けたいと思います。