.gitignore文件的作用
.gitignore文件用来忽略被指定的文件或文件夹的改动,被记录在.gitignore文件里的文件或文件夹,是无法被git跟踪到的,换句话说,被忽略的文件是不会被放入到远程仓库里的。
也就是说,如果文件已经存在于远程仓库中,是无法通过.gitignore文件来忽略的。
.gitignore文件存放于git仓库的根目录下。
.gitignore文件的语法
- 注释
"#" 表示注释,如下:
# Here is comment.
- 忽略文件/文件夹
直接写入文件或文件夹名即可,指定文件夹里的所有文件也会一起被忽略,如下:
# ignore target folder
target/
# ignore Eclipse files
.settings/
build/
.classpath
.project
- 不忽略文件/文件夹
"!" 表示不忽略指定的文件,如下:
# don't ignore src folder
!src/
- 在指定文件夹里不忽略指定的文件
通过 "!" 可以实现更加有意思的用法,如下:
# ignore scaffolds folder, but don't ignore draft.md under scaffolds folder.
scaffolds/*
!scaffolds/draft.md
注意:这里必须在文件夹后面加上/*,否则是无法实现想要的效果的。
- 使用通配符及其他符号
可以使用通配符及其他符号来指定复杂条件的文件,如下:
*.log
day_1?.txt
hello[0-9].txt
"-" 表示匹配任意字符;
"?" 表示匹配一个字符;
"[]" 表示匹配中括号内的单个字符:
可以使用-来表示连贯的字符,比如0-9,a-z,A-Z等,[0-9]表示匹配从0到9的单个字符。
可以使用来表示除外,比如[0-9]表示除0到9之外的单个字符。
.gitignore文件的作用域与优先级
.gitignore文件的作用范围是:文件所在目录及其所有子目录
优先级:如果根目录与其子目录下同时存在一个.gitignore文件设置了对某一文件忽略,与提交两种模式:
次级目录(子目录)文件中定义的模式优先于较高级(根目录)目录中的模式