介绍
今天分享一下.gitignore文件的作用 。
通常,一个 .gitignore
文件会被放在仓库的根目录下。
.gitignore的作用:这
是一个纯文本文件,包含了项目中所有指定的文件和文件夹的列表,这些文件和文件夹是 Git 应该忽略和不追踪的,所有被忽略的文件都会被保存在这里。
语法规范
- 以
/
开头忽略当前目录下的文件,但不包括子目录下的文件 - 以
/
结尾忽略目录下所有文件及内容,不管是根目录或子目录都会被忽略 - 以
#
开头表示注释 - 以
*
匹配零个或多个字符 - 以
?
匹配单个字符 - 以
[]
匹配括号内的任一字符 !
表示不忽略(跟踪)匹配到的文件或目录- 不添加任何符号表示直接忽略当前目录下的这个文件
使用说明
(1)如果你想只忽略一个特定的文件,你需要提供该文件在项目根目录下的完整路径。
#你想忽略一个位于根目录下的 src目录下的 views目录下的 data目录下的 HistoricalData.vue 文件,
/src/views/data/HistoricalData.vue
备注:不过一般没人会忽略这个文件哈
(2)如果你想忽略所有具有特定名称的文件,你需要写出该文件的字面名称。
#在这种情况下,你不需要提供特定文件的完整路径。这种模式将忽略位于项目中任何地方的具有该特定名称的所有文件。
HistoricalData.vue
(3) 要忽略整个目录及其所有内容,你需要包括目录的名称,并在最后加上斜线 /
:
#这个命令将忽略位于你的项目中任何地方的名为 test 的目录(包括目录中的其他文件和其他子目录)。
test/
(4) 如果你想忽略任何以特定单词开头的文件或目录
#忽略所有名字以 vue 开头的文件和目录。
vue*
(5) 忽略所有以 .md
结尾的文件,但你不希望 Git 忽略一个 README.md
文件。
# 忽略所有 .md 文件
.md
# 不忽略 README.md 文件
!README.md
注意:如果你忽略了整个目录,这个模式就不起作用。
# 忽略所有名字带有 test 的目录
test/
# 试图在一个被忽略的目录内排除一个文件是行不通的,这个不生效
!test/example.md
补充
(1).gitignore
只能忽略那些原来没有被追踪(tracked)的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore
是无效的。
不过好在还是有办法:先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
(2)如果你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:
$ git check-ignore -v App.class
.gitignore:3:*.class App.class