.gitignore文件无法忽略一个文件夹。

17

我在我的 .gitignore 文件中有以下内容:

#built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
# Local configuration file (sdk path, etc)
local.properties
# Windows thumbnail db
Thumbs.db
# OSX files
.DS_Store
# Eclipse project files
.classpath
.project
# Android Studio
.idea
build/
cache.properties.lock
.idea/workspace.xml
*.iws
.gradle/
**/.gradle/

然而,每当我对我的应用程序进行更改时,git都会将像.gradle/1.12/taskArtifacts/cache.properties.lock这样的文件包括在提交中。

出了什么问题?为什么build/文件夹可以正常工作,但是.gradle/不能呢?


8
很可能是由于该文件夹中的某些文件已被Git跟踪导致的。 请尝试运行git rm --cached .gradle命令,并提交更改。 - BroiSatse
@BroiSatse 谢谢,那个方法有效!看起来我误以为.gitignore会做一些它实际上不会做的事情。 - Johann Bauer
它告诉git在更新索引时忽略新文件。如果索引已经跟踪该文件,则仍将标记为已修改,因为它不再是新文件。 - BroiSatse
4个回答

51

可能Git已经在跟踪这些文件。在终端中运行以下命令对于.gradle.idea文件都适用:

Original Answer:

git rm --cached .gradle -r

1
谢谢!这解决了问题并删除了这些文件,这正是我所需要的。 - Ric17101

3
这是常见的情况,即未包含在内的点(.),请将其添加到 .gitignore 中。
.*
!/.gitignore

3

可能是因为git已经在跟踪这些文件了。停止跟踪该文件,然后执行提交和推送操作。

在Source Tree中:

  • 右键单击文件,选择停止跟踪
  • 提交更改
  • 推送到origin

请添加:它在Visual Studio Code中的git选项卡中。 - Abhinav Saxena

2
我遇到了同样的问题,希望这能帮到你:
  • 打开终端并进入根目录
  • 执行:git rm -rf .gradle/
  • 然后执行:git rm --cached .gradle -r
  • 提交更改并再次同步

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