Git忽略规则及.gitignore规则不生效的解决办法

规则介绍

用过IDEA的同学可能都知道,在新建项目的时候,idea就会自动让你根据项目类型/语言环境 选择 对应的.gitignore模板文件,虽然大部分规则都已经帮你制定好,不需要额外操心,但实际开发当中,因为项目结构不一吧,有些文件不需要提交到版本库中,这个时候就需要你手动修改根目录中 .gitignore 文件了。

首先这个文件每一行保存了一个匹配的规则,本文就介绍一些常用的规则的使用:

*.zip     # 忽略所有 .zip 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 other/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

规则很简单,不做过多解释.

.gitignore不生效

有时候在项目开发过程中,想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效

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

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

git rm -r --cached .
git add .
git commit -m 'update .gitignore'
坚持原创技术分享,您的支持将鼓励我继续创作!