问题
在使用 git 进行版本控制的过程中发现,将想被忽略的文件 (文件夹) 配置到.gitignore 文件中后,实际修改了想被忽略的文件,调用 git status 查看时,仍然会提示提交这些文件。也就是说实际并没有被忽略
原因
原因是 git ignore 只会对不在 git 仓库中的文件进行忽略,如果这些文件已经在 git 仓库中,则不会忽略。所以如果需要忽略的文件已经提交到本地仓库,则需要从本地仓库中删除掉,如果已经提交到远端仓库,则需要从远端仓库中删除。删除.gitignore 文件才能实际生效。
解决
方案一:
- 从远端仓库 clone 一份代码
- 使用 git rm file/to/be/ignored -r 删除需要被忽略的文件
- .gitignore 中配置需要被忽略的文件
- git add . 然后 git commit ;再 git push 到远端服务器
这样保证远端服务器上没有需要被 Ignore 的文件,即使在本地修改这些文件,使用 git status 查看也不会再有提示了。
方案二:
直接对本地的仓库进行操作,首先要删除缓存
- git rm -r –cached .
- git add .
- git commit -m “update .gitigonre”
一个.gitignore 示例
对于使用 idea 进行开发的同学来说,常见的需要被忽略的文件有:
/target
/out
/classes
/checkouts
/.lein-*
/.env
*.iml
.idea
.DS_Store
*/target
.svn
.project
.settings
.classpath
logs
/log
/tmp
hotspot.log