在项目中我们有一些文件是不能公开的,或者说是每个人需要单独配置的,那么这个时候使用 git 就不能上传这些文件。此时就需要对 .gitignore 文件进行配置。
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的
.class
文件; - 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件;
一些忽略规则的写法:
1、所有 空行 或者以注释符号 # 开头的行都会被 Git 忽略。
2、可以使用标准的 glob 模式匹配。
3、匹配模式最后跟反斜杠 / 说明要忽略的是目录。
4、要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号 !取反。
glob 模式:指 shell 所使用的简化了的正则表达式。
星号 * 匹配零个或者多个任意字符;
问好 ?只匹配一个任意字符;
[abc] 匹配任何一个列在方括号中的字符;
如果方括号中使用短线分隔两个字符,则表示两个字符范围内的都可以匹配,如 [0-9] 表示匹配所有 0 到 9 的数字。
更多 glob模式
例如:
.DS_Store 表示忽略所有的 .DS_Store 文件
*.text 表示忽略所有的 text 文件
!test.text 但 test.text 文件除外
/TEST 仅仅忽略根目录下的 TEST 文件,不包括 pages/TEST
unpackage/ 忽略 unpackage/ 目录下的所有文件
pages/*.text 忽略 pages/note.text 但是不包括 pages/xitong/test.text
有时候 .gitignore 文件是在项目提交了几次之后配置的,而此时会发现有些文件 并不能 被 ignore 。这是因为 .gitignore 文件只能忽略那些没有被 track 的文件,如果这些文件已经加入了版本管理中,则修改之后,.gitignore 是无效的。
解决方案:
先把本地的删除,再重新添加。
例如:
git rm -r --cached . // 这是删除所有, 或者 . 可以换成具体的文件名也就是你要忽略的文件名
git add . // 重新添加,此时生效
git commit -m "xxxx" //
git push