目录
- 1. 介绍
- 1.1 什么是.gitignore文件?
- 1.2 .gitignore文件的作用及重要性
- 2 .gitignore文件的语法
- 2.1 注释
- 2.2 文件名、文件夹名匹配
- 2.3 通配符匹配
- 2.4 模式匹配
- 2.5 路径匹配
- 2.6 否定模式
- 3. 空目录提交问题
- 4. 参考
1. 介绍
1.1 什么是.gitignore文件?
.gitignore
是一个文本文件,用于指定Git
版本控制系统中需要忽略的文件和文件夹。
1.2 .gitignore文件的作用及重要性
- 作用:
.gitignore
文件告诉Git
哪些文件或文件夹不应该被跟踪或提交到版本控制中。这对于过滤掉临时文件、编译输出、依赖库、敏感信息等非必要文件是非常有用的。 - 重要性:
管理版本控制忽略规则对于项目的整洁性、安全性和性能是至关重要的。通过有效地利用.gitignore
文件,可以确保版本控制系统只跟踪和提交真正重要的文件,避免将不必要的文件添加到仓库中。
2 .gitignore文件的语法
2.1 注释
.gitignore
文件使用#
进行注释。
# 这是注释
2.2 文件名、文件夹名匹配
- 例如
test.txt
: 匹配所有同名的文件
示例:匹配并忽略所有的index.js
文件
从图中可以看到,所有名为index.js
的文件都被忽略了。
- 例如
folder/
:匹配所有同名的文件夹
示例:忽略所有名为dist
的文件夹
从图中可以看到,所有名为dist
的文件夹(包括其内容)都被忽略了。
- 名称匹配:例如
dist
: 用于匹配所有同名的文件和文件夹
示例:忽略所有名为dist的文件夹和文件
从图中可以看到,dist文件,dist文件夹及其所有内容都被忽略了。
2.3 通配符匹配
在.gitignore
文件中,通配符允许你匹配一类文件,而不是一个特定的文件名。下面是一些常见的通配符和它们的作用:
*
: 匹配零个或多个字符
示例:忽略所有.txt文件
示例2: 忽略所有名为hello
的文件
?
: 匹配单个字符
示例:匹配并忽略所有以任意字符开头bc结尾的.txt文件
2.4 模式匹配
[abc]
:匹配字符集中的任意一个字符
示例:匹配并忽略所有以a,b,c中的某个字符开头并以bc结尾的.txt文件
[0-9]
:匹配指定范围内的任意一个字符
示例:匹配并忽略所有以a开头,第二个字符为0-3的某个数字,以c结尾的.txt文件
2.5 路径匹配
/
: 指定特定路径下的文件或文件夹
示例:匹配并忽略dist/txt目录下的所有文件和目录
**
: 递归匹配,匹配零个或多个目录(不论其位于何处)
示例:匹配并忽略所有名为log的目录
2.6 否定模式
可以使用!
符号来否定模式,即取消对某些文件或目录的忽略。这在你需要忽略某个文件类型的同时又需要跟踪特定文件的情况下非常有用。
- 示例:忽略所有 .txt 文件,但是保留 log.txt:
3. 空目录提交问题
在 Git
中,本身不会跟踪空目录,所以如果你希望在提交时保留空目录,可以通过在空目录中放置占位文件的方式来实现。一种常见的方法是在空目录中添加一个名为 .gitkeep
的文件,尽管文件名可以是任何你喜欢的,但 .gitkeep
是一个常见的约定,用于表示该目录需要保留。
- 例如,有一个空的
utils
目录,在提交时,Git
不会提交这个空目录。
如果你想提交这个空目录,可以在utils目录下添加一个名为.gitkeep
的文件。
这样做后,Git
将会跟踪该目录并保留其空状态。.gitkeep
文件实际上不会对你的项目产生影响,它只是一个占位符,用于告诉Git
该目录需要保留。
4. 参考
官方文档:https://git-scm.com/docs/gitignore