我把这个添加到。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
您的.gitignore正在工作,但它仍然跟踪文件,因为它们已经在索引中。
要停止这个,你必须这样做:git rm -r——cached .idea/
当你提交时。idea/目录将从你的git存储库中删除,接下来的提交将忽略。idea/目录。
PS:你可以用.idea/代替.idea/*来忽略一个目录。您可以在.gitignore手册页上找到关于模式的更多信息。
来自git-rm手册页的有用引用
--cached
Use this option to unstage and remove paths only from the index.
Working tree files, whether modified or not, will be left alone.
这里和其他地方提供的解决方案对我不起作用,所以我将为将来的读者补充讨论。我承认我还没有完全理解这个过程,但我终于解决了我的(类似的)问题,想要分享。
当我在Windows 10的IntelliJ IDEA中使用git时,我无意中缓存了一些包含数百个文件的文档目录,在将它们添加到.gitignore后(可能会移动它们一点),我无法将它们从默认更改列表中删除。
我首先提交了我所做的实际更改,然后着手解决这个问题——花了我太长时间。
我尝试了git rm -r——cached。但是总是会得到路径规范错误,带有不同的路径规范变体以及-f和-r标志。
git状态仍然会显示文件名,所以我尝试使用git rm -cached中的一些文件,但没有运气。
存储和解存储更改似乎是有效的,但它们在一段时间后再次排队(我对确切的时间框架有点不清楚)。
我最终删除了这些条目,以便更好地使用
git reset
我认为这只是一个好主意,当您没有真正想要提交的暂存/缓存更改时。
您的.gitignore正在工作,但它仍然跟踪文件,因为它们已经在索引中。
要停止这个,你必须这样做:git rm -r——cached .idea/
当你提交时。idea/目录将从你的git存储库中删除,接下来的提交将忽略。idea/目录。
PS:你可以用.idea/代替.idea/*来忽略一个目录。您可以在.gitignore手册页上找到关于模式的更多信息。
来自git-rm手册页的有用引用
--cached
Use this option to unstage and remove paths only from the index.
Working tree files, whether modified or not, will be left alone.