Git忽略了.idea文件夹,但它并没有在gitignore中出现。

6

问题:

我使用的是OSX操作系统。我有一个非常小的.gitignore文件,甚至尝试完全删除该文件。但都没有起作用。Git在intellij的.idea目录下看不到任何内容。

至少我想存储.idea/runConfigurations/*。更糟糕的是,根据this post除了1或2个文件外,该目录中的所有文件都应受源代码控制。

是否存在额外的、隐藏的.gitignore设置,我不知道?如果有,是否有任何方法搜索并删除它?

已经采取的步骤:

我手动添加了最重要的文件:

git add .idea/runConfigurations -f

尝试不加 -f 的结果如下:
The following paths are ignored by one of your .gitignore files:
.idea
Use -f if you really want to add them.

重新强调一下:即使我完全删除了.gitignore文件,它仍然会出现错误。
类似但未解决的线程:
在SO上搜寻后,我找到了另一个帖子有相同的问题。不幸的是,即使原始发帖人回复说问题仍未解决,它也被标记为已回答。无论如何,我的问题仍未解决。

请展示你的.gitignore文件。 - trojanfoe
1
我完全删除了 my .gitignore 文件 - 那么你删除了一个不相关的文件。请检查您的全局 ~/.gitignore 文件以及从项目根目录到 .idea 文件夹之间所有目录中的 .gitignore 文件。 - AD7six
可能是Git正在忽略不在gitignore中的文件的重复问题 - 是的,我已经阅读了问题中“类似但未解决的线程”部分。 - AD7six
3个回答

6

你有~/.gitignore文件吗?这里有一些可能会有帮助的信息。

Git有一个非常灵活的忽略文件层次结构:首先它会读取你家目录下的.gitignore文件,把所有仓库的共同数据放在这里(例如*.bak,你肯定不需要在任何仓库中使用它们)。然后,你可以在仓库中的任何文件夹中拥有.gitignore文件。它会影响该文件夹及其子文件夹中的任何文件。此外,你可以在.git/info/exclude中排除一些文件。它与.gitignore不同,因为它没有被索引,你可以在这里放置个人设置。当然,~/.gitignore也没有被索引。


2
@madhead 你是个英雄!确实有一个 /.gitignore 文件。它包含了以下三个内容(不带引号):"*",".DS_Store" 和 ".idea"。我不知道这个文件来自哪里,它是由原始的 git 安装程序创建的还是我尝试过的数十个 git GUI 中的一个。但是前两个都没问题,我很高兴他添加了它们。我手动删除了 .idea 行,一切问题都解决了。谢谢! - Bukov

0

如果使用-f标志没有任何区别(即文件仍未被暂存),请再次检查您要添加的内容是否已经在存储库中。

在我的情况下,我试图添加的东西已经在另一个分支上被添加并删除,这让我错误地认为它从未被添加过。Git很合理地拒绝了重复添加相同的内容。


0
我曾经遇到过同样的问题。在我的.git/exclude/info文件中,我排除了创建的可执行文件的名称。但是,我经常使用相同的名称来命名这些可执行文件所在的目录,例如,“sphere”目录包含可执行文件“sphere”。由于在排除info/exclude中的可执行文件名称之前已添加了所有文件,因此即使在info/exclude中排除了目录/可执行文件名称,致命错误也从未发生。
然而,最近,我尝试添加一个文件,该文件来自已被排除的目录(因为它与我要排除的可执行文件的名称匹配)。致命错误发生了,我感到困惑。我强制添加了该文件,现在任何后续添加都会忽略致命错误。
这表明,在本地.gitignore文件中排除可执行文件名称比在info/exclude中更有意义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接