Git中无法忽略.idea等文件的问题解决
问题描述
明明在.gitignore中加入./idea文件夹,但是./idea文件夹下面的一些文件竟然还能被Commit:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0JXNfGZP-1614067405469)(https://gitee.com/yaodao666/blog-image/raw/master/image-20210223154356732.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OxGMCM74-1614067405471)(https://gitee.com/yaodao666/blog-image/raw/master/asdasImage.png)]
每次提交的时候很不方便,并且对于一个有强迫症的程序员来说,这简直太难受了。
问题原因
远程分支上存在这个文件导致即使本地将其添加到ignore中,这个文件还是不会被忽略。
解决办法
删除远程的,保留本地的。
进入到想要删除的文件夹的上一级 并打开Git Bash,键入:
git rm --cached file_path
git commit -m 'delete some remote files'
git push
当目标是文件夹时,git rm命令加上-r参数,这与Linux命令几近一样。
此时结果:
清清爽爽!
解释 git rm
git rm 不加–cached的时候:
git rm file_path
表示既删除了本地的文件,又删除了远程的文件。
而加了 --cached 表示:只删除暂存区和远程分支上的文件,但本地的保留,此时ignore生效,这些本地文件就会git忽略了。
Tips
这会将远程仓库中的文件也删除掉,但.idea这些文件肯定不会影响项目的发布啥的,所以,尽管删吧。