git-错误:路径“文件”的addinfo_cache失败

Der*_*Weh 8 git merge

当我尝试将git中的任何分支合并到master时,我得到了error: addinfo_cache failed for path 'file'

我所做的:

>git checkout master
>git merge other-branch
Run Code Online (Sandbox Code Playgroud)

Git给了我:

error: addinfo_cache failed for path 'file'
file: unmerged (581c47f7d0e1a0bc825d528d9783ac18ee0cce27)
file: unmerged (26a0c24dccd2bc2f74e20488ca01bba2fcd9cf56)
file: unmerged (3be471ca5c689693339827a455f187814677642f)
fatal: git write-tree failed to write a tree
Run Code Online (Sandbox Code Playgroud)

>git status 产量:

On branch master
Your branch is up-to-date with 'origin/master'.
Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:   file

no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办,也找不到任何关于这个问题的东西。

Rob*_*een 28

当您更改了core.autocrlf配置选项但尚未删除并重新检出您的工作树时,可能会发生此错误。

因此,要么改core.autocrlf回原来的状态,要么将更改推高,删除您的存储库并再次克隆它。

  • 这需要更多的支持!我只是删除了我的工作树(显然不是“.git”目录)并对我需要挑选并且工作的分支进行了硬重置。 (2认同)

Mic*_*ebs 10

对我来说,解决方案非常简单。后:

$ git pull
error: add_cacheinfo failed to refresh for path 'file'; merge aborting.
Run Code Online (Sandbox Code Playgroud)

我执行了以下简单操作:

$ rm file  # delete the failed file, or rename it if you want to keep it
$ git checkout file  # git recreates the file
$ git pull
From [server].com:[org]/[repo]
 * branch                [branch] -> FETCH_HEAD
Merge made by the 'recursive' strategy.
# success!
Run Code Online (Sandbox Code Playgroud)


Gre*_*wen 7

我尝试编辑上述答案,但似乎没有进展......在查看您的评论/sf/users/486552531/ 后,删除 repo 是绝对的最后手段。当古怪的事情似乎发生如上。我发现最好的办法是重置为过去的提交,该提交具有相当数量的增量,然后重新检出您需要的分支。

git reset HEAD~10 --hard 或者 git checkout some-other-branch

其次是

git checkout name-of-your-branch

这样做后,您的工作分支通常会再次工作。


小智 2

  1. 您是否尝试首先通过运行来解决“文件”上的冲突git mergetool,然后将“其他分支”合并到 master 中?
  2. 或者,如果您不关心对此“文件”的本地更改,那么您可以将其硬重置到远程分支git reset --hard origin/master,然后执行git merge other-branch