java - 为什么 Intellij 在多模块 git 项目中显示 'ghost' 更改?

标签 java git intellij-idea commit

我正在开发一个多模块项目,每个模块都包含在一个单独的 git 存储库中。

当我在 Intellij 中打开 Commit Changes 对话框时,除了对我所做的 java 文件进行更改时,我经常会看到对其他模块的假定更改,而这些更改并未在 Intellij 中进行。事实改变了。

在更改树中,在这些未更改的模块下方,将有一个项目,其中只有 git 存储库的名称,没有文件扩展名,还有一个问号图标,表示 Intellij 无法识别该文件类型。

Changes with unknown file type

当我单击该项目时,内置差异查看器会给出致命:不是有效的对象名称,后跟一个 40 个字符的十六进制字符串。

40 character hex string, no diff view

如果我恢复该模块上的更改,它将立即重新出现。

发生这种情况有原因吗?会导致任何问题吗?

最佳答案

这看起来与子模块对象非常相似,如果您在子模块中提交了更改,但根存储库中的引用没有更改,则行为将是这样的。

另一个可能的原因是 git status 输出修改后的文件夹,如果嵌套存储库在根存储库中未正确忽略,则可能会发生这种情况。在这种情况下,请确保根存储库中的 .gitignore 包含嵌套存储库的文件夹。

关于java - 为什么 Intellij 在多模块 git 项目中显示 'ghost' 更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53501510/

相关文章:

java - 如何卡住 HashMap 以防止进一步更改?

git - 在 JGit 中获取最新提交的分支(名称)详细信息

git describe --tags 不适用于 Jenkins 管道构建

java - 如何获取在docker容器中运行的tomcat的CPU使用率

java - 开始学习java,我有一个问题想要解决

java - 碰撞多边形和圆形 - Libgdx

objective-c - git DAG 的增量线性化

java - 智能 : Is there an Intention Action to convert old style Log4J calls to new style SLF4J calls?

java - IntelliJ-java : Cannot find JDK '1.8'

grails - 单击“运行”按钮时,grails 2.0在IntelliJ中挂起