Git产生“错误:有未合并的索引条目”

jul*_*icz 5 git debugging merge fatal-error

进行时:

git merge some-branch
Run Code Online (Sandbox Code Playgroud)

我懂了

BUG: There are unmerged index entries:
BUG: 3 docfatal: Bug in merge-recursive.c
Run Code Online (Sandbox Code Playgroud)

不知道这意味着什么,但是看起来比通常情况更令人意外。我应该怎么办?有一些清理命令可以帮助我吗?

编辑

更糟糕的是,此错误实际上是在我的源代码之一中传播的。正如some-branch最初只是我的本地工作一样,我将其推送到远程服务器上。然后克隆一个新的存储库,并尝试将上述分支合并到此副本上,并得到相同的消息。

编辑2

我使用GIT_MERGE_VERBOSITY = 5并得到:

$> export GIT_MERGE_VERBOSITY=5; git merge origin/funkload 
Merging:
a1ef5a2 Uaktualniony INSTALL.
virtual origin/funkload
found 2 common ancestor(s):
d2eb442 Resources py.
119871b Nowy commit w doc.
  Merging:
  d2eb442 Resources py.
  119871b Nowy commit w doc.
  found 1 common ancestor(s):
  62f4183 Poprawiony bug w obs?udze linków do resources, które s? null.
  Removing doc/concept/agreement.lyx
  Removing doc/concept/agreement.pdf
  Removing doc/concept/concept.lyx
  ...
  Removing druglo-doc
  Removing src/db/fixtures/initial.json
  Skipped src/druglo/backend/actions/tests/fight.py (merged same as existing)
  Auto-merging src/druglo/backend/characters/models/behaviours.py
  CONFLICT (content): Merge conflict in src/druglo/backend/characters/models/behaviours.py
  Auto-merging src/druglo/backend/players/models/players.py
  Auto-merging src/druglo/backend/worlds/resources.py
  CONFLICT (content): Merge conflict in src/druglo/backend/worlds/resources.py
  Auto-merging src/druglo/common/integrity/webservices/resources.py
  CONFLICT (content): Merge conflict in src/druglo/common/integrity/webservices/resources.py
  Removing src/druglo/frontend/cityscreen/models.py
  Removing src/druglo/frontend/forms.py
  Removing src/druglo/frontend/mainscreen/models.py
  Removing src/druglo/frontend/models.py
  CONFLICT (directory/file): There is a directory with name doc in Temporary merge branch 1. Adding doc as doc~Temporary merge branch 2
BUG: There are unmerged index entries:
BUG: 3 docfatal: Bug in merge-recursive.c
Run Code Online (Sandbox Code Playgroud)

注意:我最近将目录之一移到了单独的子模块中。因此,现在我有很多冲突。该错误似乎与此有关。

Von*_*onC 4

该错误消息是在 2010 年 1 月引入的,为了帮助调试这种情况,Junio C. Hamano 建议设置GIT_MERGE_VERBOSITY为 5:

我们可能希望建议用户设置GIT_MERGE_VERBOSITY为 5 并在消息中重新运行合并。
至少我们会知道哪个部分process_renames()process_entry()函数没有正确处理未合并的路径,这可能有助于我们诊断问题。

OP julkiewicz报道

CONFLICT (directory/file): 
There is a directory with name doc in Temporary merge branch 1. 
Adding doc as doc~Temporary merge branch 2
Run Code Online (Sandbox Code Playgroud)

这允许隔离导致此错误消息的目录。