在OS X上使用Git 2.2.0版本和unity游戏引擎,并想提交我的代码。我添加了所有内容,没有得到错误消息。然后提交-m,得到如下错误信息:

fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources'

没有注意到,我按了,没有给出错误信息,事实上,说一切最新 所以我检查了bitbucket(回购所在的地方),它没有显示我的提交。所以我检查了我的本地日志,也没有显示我的提交。

我调查了谷歌寻找答案…和什么都没有。这个错误是什么?我该怎么解决呢?


当前回答

我尝试了一种不同的解决方法,对我来说很有效。下面是我的选项

#cd .git
#rm index
#cd ..
#git add .

其他回答

我刚刚得到这个错误与Github桌面客户端(OSX)。我所做的就是退出应用程序,重新打开,然后它就开始工作了。

如果这发生在子模块中

索引文件位于父目录。git中:

.git/modules/your_project_structure/index

在子模块中,没有名为.git的目录(至少在我正在工作的项目中),只有一个.git文件告诉你(和git)在哪里查找该项目的git目录。

Git状态显示了我没有做的更改

在删除索引文件并进行git重置之后,我发现自己面临着许多难以解释的变化,而硬重置并没有帮助。

警告您将丢失所有更改,因此请提交并在继续之前执行。

索引似乎已损坏,因此我使用以下命令删除了它。

git rm -rf --cached .
git reset --hard HEAD

第一个解决方案,似乎适用于最新版本的Git (2.3+, Q2+ 2015),在grant的最新答案中提到:

删除索引 $ rm .git/index 添加所有 $ git添加 提交 $ git提交


原答案(2014年末) 通常的解决方法是:

再次克隆远程回购到一个新的本地回购 将第一个repo的更改添加到第二个repo: $ cd /patH/to/second/clone /repo $ git——work-tree=/path/to/first/repo add。

您可以在这个补丁中讨论的read-cache.c中看到这个错误消息(“read-cache.c: Ensure unmerge entries are removed”),并在Git 2.2提交中引入。 由于这是最近的事情,所以有可能将Git降级到2.1就足以不受该补丁的影响。

OP Daniel Toebe在评论中补充道:

这个问题发生在我的macbook上,它决定在我身上失败,而另一个电脑故障使我远远落后于我的项目。

您可以从项目中删除Git索引文件。在项目的根目录下,运行以下命令:

rm .git/index

之后,让它工作。

我尝试了一种不同的解决方法,对我来说很有效。下面是我的选项

#cd .git
#rm index
#cd ..
#git add .