LoginSignup
15
8

More than 1 year has passed since last update.

Exiting because of an unresolved conflict. 解決方法

Posted at

今回はターミナルでプッシュができない事態が発生し、その解決方法として色々なコマンドを叩いていたのですが、その中でgit merge origin/mainを叩いた際にExiting because of an unresolved conflict.が発生したので、その解決方法をご紹介します!

エラー内容

$ git merge origin/main
error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

どうやらコンフリクト起きているみたいです。
コンフリクト:「衝突」の意味で、ファイル上で「自分の作業」と「他人の作業」が重複してしまっている状態のことです。

解決手順

解決までの手順は以下の通りです!
1.git log --oneline --graph --allでブランチの一覧を取得し確認
2.git statusで現在の状態確認
3.表示された赤字で指摘されているファイルをadd、commit
4.再度git statusで赤字が消えたことを確認
5.コミットしたファイルをpush

1.ブランチの一覧取得

git log --oneline --graph --allを叩くと、下記のcafb650部分でブランチが枝分かれしてしまっているのが確認できます。

$ git log --oneline --graph --all
* 9bf9dc2 (HEAD -> main) [add] デザイン実装
| * cafb650 (origin/main, origin/HEAD) [add] デザイン実装
|/  
* b831743 [add] 在庫登録の項目追加
* 60ebefa [add] 在庫検索機能のコントローラ追加
* df3a0dc [remove] 在庫一覧表示のテンプレートファイルを削除
* 060eeaf [add] 在庫検索機能を追加
* c37030a [fix] 在庫の編集内容確認画面にアクセスできない不具合の修正

2.git statusで状態確認

git statusを叩いたら、何かのメッセージとパスが表示されましたね。
今回赤字で表示されたのが、Unmerged paths:の下に表示された2つのパスです!

この最初のメッセージでは、ブランチが分岐しています。一つ一つ異なるコミットが存在しています。と書いてあり、下の指摘されたパスは、マージされていないパスとして赤字で表示されています。

$ git status
//ブランチが分岐していると指摘されている
On branch main
Your branch and 'origin/main' have diverged,
and have 1 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

//マージされていないパスがある
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

//マージされていないパスが赤字で表示
Unmerged paths:
  (use "git add <file>..." to mark resolution)
    both modified:   resources/views/stock/list.blade.php
    both modified:   resources/views/stock/search.blade.php

3.マージされていないパスをインデックスに追加・コミットする

では、マージされていないと赤字で指摘されたパスをgit add パスでインデックスに追加します。
次にgit commit -m 'コミットメッセージでコミットします。

4.再度git statusで状態確認

コミットまで完了したら再度git statusで状態を確認します。
すると、今回は赤字が消えているのが確認できるかと思います!
そして、mainブランチは最新ですというメッセージも表示されました。

$ git status
On branch main
Your branch is up to date with 'origin/main'.

4.コミットしたファイルをリモートリポジトリに反映

最後にgit push origin mainでリモートリポジトリにプッシュして反映させます。
無事プッシュまで完了したので解決できました!

参考サイト
https://tea-programming.blogspot.com/2020/03/gitfatal-exiting-because-of-unresolved.html

15
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8