为什么我会得到“致命的:git status - 瓷器失败”?
这是一个在流浪汉中的巨大痛苦。我之前有过几次,我不明白为什么。 5分钟前,回购工作良好,我工作的时候,我移动了一些文件(这是很酷的,所有的都很酷),而Git则用它的裤子。任何想法为什么发生这种情况我该如何解决它克隆回购,移动文件等...为什么我会得到“致命的:git status - 瓷器失败”?
哦,亲爱的,我是这样的失败。它看起来像这个问题从Flash Builder复制比其他git的回购成子文件夹梗。答案是删除所有不是回购协议的.git文件夹。
我的回购中没有任何.git文件夹,但随时将我的新文件复制到我的文件夹中以更新我的应用程序,我仍然收到索引损坏的瓷器失败错误。我不明白如何更新文件会破坏这个或如何解决它。任何人都有进一步的见解呢?
万一它帮助别人,我只是遇到了同样的问题,发现在项目根目录下运行git init
修复了它。
我遇到了这个错误,因为损坏/未正确初始化的子模块(使用它自己的.git子文件夹)。我暂时删除了子模块文件夹,并在主项目的根目录中使用了git init
。解决了我的问题。
这也是我的原因,但除了删除子模块文件夹外,我还必须重新运行'git submodule init && git submodule update'。 – starkos 2017-03-29 12:22:35
我有同样的问题。在我的根项目的目录中运行git status
产生以下错误:
fatal: This operation must be run in a work tree
fatal: 'git status --porcelain' failed in submodule js/object-subscribe
在受影响的子模块(js/object-subscribe
)运行git status
会产生这样的错误:
fatal: This operation must be run in a work tree
在该子模块的文件夹中运行git init
为我做。
通常,蠢货,项目的根目录(git的/)
当你在一个CMS的工作,它可能在安装模块/插件携带的.git /目录中的git对元数据创建了一个隐藏目录具体的模块/插件
如果你不想使用git的子模块的功能,最快的解决办法删除除根git的元数据目录下的所有目录中的.git。 如果这样做,git将不会将这些模块视为项目子模块。
cd /path/to/your/project/code
find ./ | grep ".git/index"
位于删除一旦“git的”除了根一个所有目录,但如果你删除它初始化回购再次
我知道这是一个古老的线程,但我有同样的问题,最终以不同的方式解决。 git init
没有为我工作。 张贴在这里,以防其他人有用。
我的存储库有两个子模块。 垫底之后,我开始收到错误致命: - 陶瓷失败 git的状态。
解决方案是验证每个子模块config
文件中的属性worktree
- 例如, <repository-checkout>/.git/modules/<submodule-name>/config
。
我有一个worktree
属性的无效路径。它链接到已更改并合并到master
的未存在文件夹 - 可能是由于解决冲突时出错。
.git
是子模块中的文件,并指向位于根目录.git
目录中的目录。
在我的情况下,我在docker中挂载了一个git目录,并在那里检查状态。这个子模块的.git文件包含一个在docker中无效的绝对路径。我编辑了这个.git
文件到更改gitdir路径为相对路径。
Git版本:2.7.4
在我的情况下,使用git mv moduleA moduleB
用git 2.12.2移动moduleA/mySubmodule
到moduleB/mySubmodule
后,我跑进follwoing错误:
$ git status
fatal: Could not chdir to '[../]moduleA/mySubmodule': No such file or directory
fatal: 'git status --porcelain' failed in submodule mySubmodule
fatal: 'git status --porcelain' failed in submodule moduleB
然后我做的follwing(也许在没有这个顺序)
- 手动更新
.gitmodules
进入moduleB
- 输入
.git/modules
和重命名旧模块文件夹 - 输入
moduleB
和删除文件夹的子模块 - 运行
git submodule sync
和git submodule update
在那之后,我可能没有问题再次运行git status
。
我不知道我仍然有一些与旧的子模块相关的.git相关文件 - 在我删除它们之后,我又回到了黑色。 – electblake 2012-10-11 05:11:14
实际上,可能需要从'vendor'文件夹中移除仅有问题的依赖关系的'.git'文件夹。 在目标repo通过一些重新绑定之后,发生了'@ dev'依赖关系。 – hejdav 2015-06-04 07:08:05