backlogのGitのプルリクエストで競合出ている場合の解決方法(黒い画面を使わない場合)

投稿日: 更新日:

(22/12/05:追記しました)

(22/07/05:一部文章内容変更しました)

毎回イライラさせれられるので、対応手順を以降にメモる。

黒い画面を使う場合

競合を解決したいときはこちらの方法が一般的と思われるが、
本記事では「使わない場合」を述べるので、先達の有りがたいソースへのリンクを示すに止める。

プルリクエスト送ったら競合してたので解消手順のメモ - Qiita

プルリクエストでコンフリクトしたときの対処方法(備忘録) - Laravel学習帳 (laraweb.net)

backlogの管理画面のみを見て解決する場合

※22/12/08 追記)GitHub Desktop で対象リポジトリを管理してるなら、後述のGitHub Desktop(Windows版)で解決する場合が競合箇所の特定が断然楽。

こちらが本題。対象は次のような人。

  • GUIしか使えない人(黒い画面が使えないって。。)
  • 自分みたいに「GitHub Desktop」とかGUIベースのGitリポジトリ管理ツールで普段やってて黒い画面がめんどい時がある人

手順#5は多分要らないのかも。

  1. マージ対象のブランチに、通常のbacklogのマージの要領で、masterの変更内容をマージするプルリクエストを作成する。
  2. 作成したプルリクエストの詳細画面をひらき、画面下部の「コミット履歴」タブを押下して、マージされるコミットのリストを開く。
  3. 前述コミットのリスト毎に、更新されたファイルを確認し、競合していると思しきファイルを特定する。
  4. masterブランチの競合ファイルに、マージしたい変更を手動マージする。
  5. マージしたいブランチの競合ファイルの内容を、masterブランチのそれと同一にする。

22/12/08:追記)GitHub Desktop(Windows版)で解決する場合

※Mac版の場合も似たようなもんかと思うが、調べてない(__)

まず前提として、次の通りとする。

  • 対象のリポジトリをGitHub Desktopと連携させてる。
  • MS Codeをインストール済み。

次の手順を行う。

GitHub Desktopを開き、Current Branch をマージ先のブランチとする。

メニュー「Branch>Merge into current Branch...」を選択。
→ダイアログが開き、マージ元のブランチのリストが表示される。

マージ元のブランチを選択してする。
→競合ある場合は、次の様にダイアログ下に表示される。

221207_1740__detect_conflicts.png

※以降、競合ある場合の手順。

「Create a merge commit」ボタンを押す。
→競合ない場合は、そのままマージ成功。競合ある場合は、次の様に、競合しているファイルがリスト表示される。

221207_1740__list_conflicts.png

競合ファイルの項目右の「Open Visual Studio Code」をクリックする。
→MS Codeのエディタが開き、競合箇所が次の様な形で表示される。

221207_1744__edit_conflicts.png

競合箇所の表示上部に「Accept Current Charge|...」とか並んでいる文言があるが、
「Accept Current Change」をクリックすると、マージ先の内容が保持され、
「Accept Incoming Charge」をクリックすると、マージ元の内容がマージされる。

また、直接編集も出来る。

編集後、保存する事で対象ファイルの競合が解消される。
全ての競合が解消されると、次のように「Continue merge」ボタンを押せるようになる。ボタンクリックでマージ完了。

221206_1630__clear_conflicts.png

関連するタグ

関連するタグは現在ありません。