明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

【git】.gitignore 忽略target、.idea文件夹等

Posted on 2020-12-01 10:33  且行且思  阅读(4188)  评论(1编辑  收藏  举报

1.需求:

项目中如日志,临时文件,编译的中间文件等不想提交到代码仓库,

2.方案:

这时就要设置相应的忽略规则,来忽略这些文件的提交。在项目根路径添加.gitignore文件,内容如下,匹配规则按行从上到下

  1. #忽略所有.svn目录
  2. .svn/
  3. #忽略所有target目录
  4. target/
  5. #忽略所有.idea目录
  6. .idea/
  7. #忽略所有.iml文件
  8. *.iml
     
     
    .mymetadata
    .checkstyle
    .classpath
    .project
    .class
    .war
    .zip
    .rar
    .idea
    *.iml
    .settings/*
    /indexes/*
    /target/*
    /src/main/webapp/WEB-INF/classes/*
    /src/main/webapp/userfiles/*
    /target/
    /src/main/resources/rebel.xml
    /src/main/resources/jeesite.properties

语法含义
/ 目录
* 多个字符
? 单个字符
[] 多个可选字符匹配单个字符
! 不忽略(跟踪)匹配到的文件或目录

详细的规则可以参考官方英文文档

3 .gitignore规则不生效

3.1 现象

不小心在IDE提示是否添加到git时,点了确定,发现管理了.idea、target文件夹,

然后添加.gitignore文件夹,配置了以上规则,但是重新编译后,target的修改在git status还是显示了修改!?

3.2 原因

.gitignore只能忽略那些原来没有被track(之前没有add过)的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

3.3 解决方案  在目标文件夹下右键 git bash ,即可调出控制台输入命令行:

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

  1. git rm -r --cached target
  2. git rm -r --cached .idea

此后不再追踪track这两个文件夹