GITマージエラー「ファイルがマージされていないため、コミットできません」


172

そのため、編集する前にコードをプルするのを忘れて、新しいコードをコミットしてプッシュしようとすると、プッシュできないというエラーが発生しました。競合を削除しましたが、ここからどうすればよいかわかりません。

git commitもう一度試しましたが、「ファイルの結合が解除されているため、コミットできません」と表示されます

回答:


245

競合を修正した場合は、を使用してファイルをステージに追加し、git add [filename]通常どおりにコミットする必要があります。


2
それらが私が作業していないファイルである場合はどうなりますか?その後、それらを追加する必要がありますか?それを処理する最良の方法は何ですか?
R11G 2013年

1
現在のブランチにマージしているブランチで削除されたファイルに対してこれを行わなければなりませんでした。Gitが競合としてフラグを立てgit add the_fileたため、マージをコミットするためにローカルでファイルを削除する必要がありました。
Brendon Muir 2016

競合のリストを見つける方法?
polina-c

7
git status競合のあるファイルが表示されます
jonnystoten

@jonnystotenコメントありがとうございます!私git statusは言ったファイルを使用して見つけましたboth deleted。WebStorm UIは問題を示さず、マージをコミットできないと述べただけです。解決しました!
Yuri Predborski

52

2つのことを行う必要があります。最初に変更を追加します

git add .
git stash  

git checkout <some branch>

それは私に解決したので、それはあなたの問題を解決するはずです。


git addだけでは必要ありません。十分でしょう
Rais Iqbal

3
また、git addすべての作業ファイルを使用したくない場合、これは
非常に重要

11

を使用git stashして、目的のコミットを実行する前に(アップストリームのリポジトリからの変更をでマージした後)、現在のリポジトリを保存できますgit stash pop。昨日同じ問題があったときにこれをしなければなりませんでした。


2

このエラーは、競合を解決したが、ファイルをステージ領域に追加する必要がある場合に発生します。git add。それを解決します。次に、コミットとマージを試みます。


0

「マージされていないパス」の下のファイルを削除するために煮詰められた同様の問題がありました

これらのファイルを使用して削除する必要がありました git rm


0

上記のエラーから。この問題を修正するには、コードを元に戻すだけです。(git revert HEAD)その後git pull、変更をやり直し、その後git pull、エラーなしでコミットまたはマージできました。


0

git 2.23(2019年8月)以降、これを行うためのショートカットが用意されています。 git restore --staged [filepath]。このコマンドを使用すると、競合するファイルを追加および削除せずに無視できます。

例:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.