Git中的ignore忽略文件
Git中的ignore忽略文件
·
Git中的ignore忽略文件
1.背景
在项目中,并不是所有文件都要进行版本追踪(如日志文件、node_modules等)。使用.gitignore是最简单配置git忽略文件版本追踪的方式。
2.怎么用
(1)在项目根目录创建 .gitignore 文件。(注意:不一定非要放在项目根目录,这样写是为了让项目下的所有文件都生效)
(2)用文本编辑器打开文件,进行配置:
- 每项配置独占一行。
- 每行的内容可以是:文件/目录 的名称、路径 或 它们的模式匹配。
3.模式匹配
- 空行不匹配任何文件,因此常用作分隔符(以方便阅读)
#用于注释,\表示转义(如对a!bc.txt,需改为a\!bc.txt)*可以匹配任何字符(0或多次),?可以匹配任何字符(1次)。(注意:它们都不可以匹配/)- 用于分隔目录:
- 当
/在开头时,表示从项目根目录开始匹配。否则,所有级都将匹配。举例:/abc只能匹配/abc,不能匹配/x/abc或/x/y/abc等 - 当
/在末尾时,只匹配目录,否则,则同名的目录和文件都将匹配。举例:/abc/只能匹配/abc目录,不能匹配/abc文件。abc/能匹配/abc/或/x/abc/或/x/y/abc/等,不能匹配/abc或/x/abc等
- 当
- 原先被排除的文件,使用
!模式后该文件将会重新被包含。但如果了该文件的父级目录被排除了,那么使用!也不会再次被包含(这个细节要特别注意) []通常用于匹配一个字符列表,如:a[mn]z可匹配amz和anz**用于匹配多级目录,如a/**/b可匹配"a/b","a/x/b","a/x/y/b"等
4.示例
4.1 忽略所有文件

4.2 忽略所有文件夹

4.3 忽略public文件夹下的所有文件,除了favicon.ico文件

4.4 只保留public目录下的a{一个字符}z.后缀名的所有文件

5.ignore规则检查
git check-ignore -v {文件或目录路径};有输出则表示这个 {文件或目录路径} 或目录是被忽略的(如下图)
6.遇到gitignore失效怎么办
6.1 文件已经被Git跟踪
如果在设置.gitignore之前,文件已经被Git跟踪并提交过一次,那么.gitignore对这个文件将不起作用。需要先使用以下命令将文件从Git仓库中移除:
git rm --cached <file>
6.2 .gitignore文件位置不正确
请确保.gitignore文件位于Git项目的根目录下,并且文件名为.gitignore。
6.3 文件路径错误
请确认.gitignore中指定的文件路径或模式是正确的。可以使用相对路径或绝对路径进行指定。
6.4 缓存未清除
如果之前的缓存没有清除,.gitignore文件的更改可能不会立即生效。可以尝试清除Git缓存:
git rm -r --cached .
git add .
git commit -m "Apply .gitignore"
6.5 使用git check-ignore命令
这个命令可以帮助你检查Git是否忽略了特定的文件或路径:
git check-ignore -v <file-or-directory-path>
更多推荐


所有评论(0)