GitHubのチーム開発でResolve conflictsが押せないときの対処法

こんにちは!Nineeenという学生開発チームの代表をしている古谷洸樹ふるやこうきです。

今日はチーム開発をしていく中でGitHub上で修正できないconflictsが発生したのでその解決方法を備忘録として残しておきたいと思います。

はじめに

画像1

この問題への対処法は多くの人が取り上げています。原因はGitHubでは対応しきれないconflictsが起こってしまったからです。ローカルでのconflictsの修正が必要となります。

私の問題

私たちのチーム開発ではGitHubをNineteen2021という共有のアカウントで使用しています。そのアカウントをforkして各自のアカウントで作業をしてプッシュするようになっています。

自分のローカルはフォークした自分のGitHubのローカルなので共有アカウントで起こったコンフリクトを自分のローカルに落とし込むのが難しいのです。

プッシュの流れ
自分のローカルでdevelopからfeatureを切る

featureを自分のGitHubにpushする

自分のGitHubのfeatureを共有のGitHubのfeatureにpushする

共有のGitHubでfeatureからdevelopにpushする

こういった面倒なGitFlowを取っているのは間違ったコミットや変更をpushしてしまい、リポジトリを壊してしまったり、復旧が面倒なミスをしてしまう可能性を少しでも減らすためです。

私の今回のコンフリクトは最後の「共有のGitHubでfeatureからdevelopにpushする」という部分で起こってしまいました。

今日はそのリポジトリが自身のローカル環境にない時の対処法を記録していきたいと思います。

対処法

結論から言うと自身のローカルでも同じconflictsの状態を作ることで解決しました。

まず、自分のGitHubアカウントのdevelopを最新にしてローカルも最新にします。
自分のローカルでfeatureにdevelop/originをpullします。
(注意:pull先をしっかり指定する)

画像3

画像4

ここで共有のGitHubで起こっているconflictsと同じconflictsがローカルでも起こります。
あとはvscodeで修正してpushするとpull requestが自動で書き換わり、conflictsが解消されました。

画像5

最後に

ここまで読んでいただきありがとうございます。
自分の為に書いたものですが、誰かの為になれば幸いです。
もしよければスキをお願いします!

いいなと思ったら応援しよう!