1.需求:
项目中如日志,临时文件,编译的中间文件等不想提交到代码仓库,
2.方案:
这时就要设置相应的忽略规则,来忽略这些文件的提交。在项目根路径添加.gitignore文件,内容如下,匹配规则按行从上到下
#忽略所有.svn目录
.svn/
#忽略所有target目录
target/
#忽略所有.idea目录
.idea/
#忽略所有.iml文件
*.iml
语法 | 含义 |
---|---|
/ | 目录 |
* | 多个字符 |
? | 单个字符 |
[] | 多个可选字符匹配单个字符 |
! | 不忽略(跟踪)匹配到的文件或目录 |
详细的规则可以参考官方英文文档
3 .gitignore规则不生效
3.1 现象
不小心在IDE提示是否添加到git时,点了确定,发现管理了.idea、target文件夹,
然后添加.gitignore文件夹,配置了以上规则,但是重新编译后,target的修改在git status还是显示了修改!?
3.2 原因
.gitignore只能忽略那些原来没有被track(之前没有add过)的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
3.3 解决方案
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached target
git rm -r --cached .idea
此后不再追踪track这两个文件夹