未来エンジニア養成所Blog

月単価180万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

【Git&GitHub】コンフリクトが起きないようにする

title


コンフリクトが起きないようにするには

今回はコンフリクトが起きないようにするにはと言うことについて解説していきます。


コンフリクトが起きないようにするにはどうすれば良いのでしょうか。


それではコンフリクト関連の事故が起きにくい運用ルールについて見ていきます。


まずコンフリクトを防止するためには、当たり前の話ですが、複数人で同じファイルを編集しない。

そこを大事にしてください。


コンフリクトは何で起きるかというと、同じファイルの同じ箇所を色々な人が編集した時に起こっています。

と言うことは、本当に当たり前なんですが、同じファイルを同時に色々な人が編集しなければ、コンフリクトというのは起こらないのです。


なのでAさんという人があるファイルを編集している時、他の人は同じファイルを変更しない、別のファイルを開発するようにしてください。

そうするだけでコンフリクトの数はぐっと減るはずです。


その他にコンフリクト関連の事故が起きることがあるので、それを防止する方法についても紹介しておきます。


一つ目はpullやmergeする前に変更中の状態をなくしておくということです。


どういうことかというと、pullやmergeをする前、今変更中というファイルの状態は基本的になくしておいた方が良いです。

どうやって無くすかというと、commit したり stashしたりして変更中のファイルの状態をなくしておくことができます。

git stashというのは変更中のファイルを一時保管しておくコマンドです。


なぜ変更中のファイルがあったらいけないのか。


変更中のファイルがあって、pullやmergeをした場合、その変更中のファイルとpullやmergeするファイルが重複するとpullやmergeができなくなることがよく起こります。


pullやmergeをしてエラーが起きた場合は、今変更中のファイルが無いかを確認してください。

もし変更中のファイルがあったらcommit やstashをして変更中のファイルをなくしておくようにしてください。


次に大切なことが、pullするときは、pullするブランチに移動してからpullしてください。

どういうことかというと、たとえばmainブランチをpullする場合、今自分がいるブランチのmainブランチに移動してから、その上で「git pull origin main」というコマンドを実行するようにしてください。


これはなぜかというと、pullするとそのpullしてきたブランチの内容が、今いる自分のブランチにマージされてしまうからです。


例えばfeatureブランチにいて、「git pull origin main」とすると、今自分がいるfeatureブランチの方にorigin/mainの内容がマージされてしまいます。


意識してそれをやっている場合は問題ないのですが、意識せずにpullすると勝手にマージが起こって、予想外のことが起こったりします。

そうならないように、pullするときはpullしてくるブランチと同じ名前のブランチに移動してからpull するようにしましょう。


これら3つの運用ルールでコンフリクト関連の事故はかなり減ると思います。


ただ最後に1つあげるとすると、これは運用ルールではないのですが、心構えとして、コンフリクトしても慌てないようにしてください。


前回コンフリクトの解消方法は見てきました。

そこで見てきたように、コンフリクトしてもそのコンフリクトの解消というのはそんなに難しいことではないです。

慌てずにゆっくりと対処すれば問題なくできます。

なので心構えとして、コンフリクトしても慌てないようにしてください。


まとめ

  • 複数人で同じファイルを変更しない
  • pullやmargeする前に変更中の状態をなくしておく(commitやstashをしておく)
  • pullするときは、pullするブランチに移動してからpullする
  • コンフリクトしても慌てない


参考図書



独学で挫折しそうになったら、オンラインプログラミングスクール
未来エンジニア養成所Logo



あわせて学習したい

phoeducation.work