我把这个添加到。gitignore文件

.idea/*

但无论如何,现状是:

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml

我做错了什么? 我甚至在全局变量~/.gitignore_global中添加了.idea/* 但是git的状态告诉我:

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml

当前回答

索引更新——skip-worktree

忽略配置文件的特定git选项是:

$ git update-index --skip-worktree <filepath>

注意,不需要在.gitignore中添加任何东西。

要取消此设置,例如当配置文件的通用结构发生更改时:

$ git update-index --no-skip-worktree <filepath>

——skip-worktree用于指示git永远不要将文件更改索引到特定的文件。这可能是因为开发人员通常需要在本地更改文件以测试项目。例如,如果主存储库上游托管了一个可用于生产的配置文件,那么应该防止对该文件的意外提交更改。

而——assume-unchanged则假设开发人员永远不应该更改该文件。这个标志仅仅是为了提高git的性能,不改变像软件开发工具包(SDK)组件这样的文件夹。

其他回答

这将允许您删除缓存的索引文件,然后只添加您需要的索引文件,包括对.gitignore文件的更改。

Git rm -r——cached。 Git添加。 git commit -m删除被忽略的文件

这些行动可以实现以下目标:

步骤1:该命令将清除所有缓存文件的索引。 步骤2:该命令将添加除文件之外的所有文件 gitignore列表。 步骤3:通过使用这个命令,你可以删除你想要git的文件 忽略,同时保持他们在您的本地目录和重新提交您的 文件。

Git添加。 Git状态//查看正在修改的文件 // git reset HEAD—替换为你想忽略的文件 git重置HEAD .idea/ <——那些想要在提交前排除.idea的人 // git检查状态和想法文件将消失,你已经准备好了! Git commit -m " git推

简单添加git rm -r——cached <folder_name/file_name>

有时,在文件的commit命令之后更新.gitignore文件。文件被缓存在内存中。要删除缓存的文件,使用上面的命令。

如果你已经在你的。gitignore中添加了。idea/* Git rm -r——cached .idea/命令不工作(注意:显示错误-> 致命的:pathspec '。Idea /'没有匹配任何文件)试试这个

从你的应用中删除。idea文件运行这个命令

rm -rf .idea

现在运行git status并检查 在运行app时,将再次创建.idea文件夹,但它不会被跟踪

我插一句。在我的例子中,子目录中有一个git repo,因为我从其他人那里解压缩了一个zip文件,然后递归地将他们解压缩zip中的所有内容复制到我的repo中,而没有检查我正在复制什么。

一旦我吹走了我现有的回购中的.git目录,一切都很好。