こんばんは、おささです😚
今回のお題
「コンフリクト地獄」
でございます。
そうです、GithubにPullRequestとして上げたブランチが 全部 コンフリクト起こしているんです。
流石に走馬灯が見えました。
コンフリクトを起こしていたファイルは、VScodeのconfig/db配下にある***「schema.rb」***ファイルです。
経緯からご説明します。
- チーム開発でDB設計後、各テーブルに分けてbrunchを作って作業をした
- migrationをしたあとに必ず変更がかかるschema.rbファイルの存在を知らず、各brunchのschemaファイルがその時点で相違していた
- そのことに気づかず、各テーブルをそれぞれが作業しGithubにあげたため、全brunchでschemaファイルのコンフリクトが起きた
以上が、ざっくりとした全貌です。
多分この記事を検索して見られている方は、かなり焦られていると思いますが
ご安心ください
簡単に直ります。
そもそもschemaファイルはmigration毎に変わるので、**サクッとリセットしちゃおう!**みたいな感じだそうな。
対処方法
- GithubDesktopを最新の状態にしましょう!(master brunchを選択し、Fech origin!)
- masterが最新になったら、コンフリクトを起こしているbrunchに切り替えましょう(Current brunchをコンフリクト起こしているbrunchへ!)
- PCの左上「brunch」を選択し、 Update from master を選択
- GithubDesktopにコンフリクトの窓が現れたと思うので、「Open in Visual Studio Code」を押しVScodeへジャンプ!
- schemaファイルに、コンフリクト内容が嬉しくないカラフルさで出ていると思いますが、 command+a で記述を全削除!
- ディレクトリに移動したターミナルで、「rails db:migrate:reset」コマンドを実行!
- schemaファイル内が更新され、GithubDesktopに戻るとコンフリクトが解消されていると思うので「Commit Merge」!
- 変更を「Push origin」!
この作業で、schemaファイルのコンフリクトは解消することができます😄
もしコンフリクトを起こしているschemaファイルがいくつもある場合、コンフリクトを解消する順番とかはとくにないそうなので、Mergeしたい順に解消作業をしていけば良いかと思われます♪
あとは適宜、Github上でMerge、GithubDesktopでmasterにMerge等していただければ👍
以上、「全Brunchコンフリクトで地獄を見た」の回でした!
では、また👋