每次我犯了Git仓库里面,我得到的(显然是无害的)错误信息提的是,不再存在的几个文件:git的承诺错误消息:无法打开(先前删除源文件)
$ git commit -a
error: Could not open cssrc/csgrpc/Main.cs
error: Could not open cssrc/csgrpc/Main.cs
Recorded preimage for 'cssrc/csgrpc/Main.cs'
... more 3-line groups like one above ...
[x017-upgrade a86861b] Point Audio to new location of....
1 file changed, 1 insertion(+), 1 deletion(-)
这些文件最初是子树的一部分,由git subtree -P cssrc ...
维护,我在git subtree pull
冲突期间删除了它们,因为它们不再需要在此项目中(但之前已修改并已提交,因此存在冲突)。
这些文件是既不在指数也不在worktree发现:
$ git ls-files -cs | grep Main.cs
$ find -name 'Main.cs'
$
的rerere.enabled
选项设置为true
。它是罪魁祸首吗?这些文件名的卡住指针存储在哪里?如何清洁它?
rerere记录位于'.git/MERGE_RR'中。不过,该文件应该在您中止或完成合并时清理完毕。 – torek
@torek:该文件包含3条记录,仅通过'git rerere clean'删除。检查下面接受的答案(最近大大扩展)以获得确切的复制。不过,我目前在步骤41中感到困惑。 :) – kkm