一、为什么要掌握.gitignore文件用法?
.gitignore 文件是 Git 版本控制系统中的一个非常重要的组成部分,它用于指定哪些文件或文件夹应被 Git 忽略,即不被纳入版本控制。这样做的好处有以下几点:
1、减少不必要的提交
大型项目或多人协作项目中,可能会包含很多自动生成的文件或日志文件,这些文件不需要进行版本控制。通过 .gitignore 文件,可以指定这些文件,避免它们被提交到代码库。
2、提高效率
Git 在检查修改时会遍历所有文件,如果项目中包含大量的不需要版本控制的文件,会显著增加检查的时间。通过 .gitignore 文件,Git 只会关注那些需要版本控制的文件,提高了效率。
3、项目结构清晰
.gitignore 文件是项目的一部分,它清楚地表明了哪些文件是不需要版本控制的。这有助于项目维护者和阅读者更好地理解项目结构。
4、兼容不同开发环境
开发者可能使用不同的操作系统,有的喜欢保存二进制文件,有的则喜欢保存配置文件。通过 .gitignore 文件,可以适配不同的开发环境,避免因环境差异引起的冲突。
二、语法详解
1、注释:使用 # 符号进行注释。
2、文件和目录规则:每行一个规则,指定要忽略的文件、目录或模式,具体见:
(1)要忽略特定文件,请直接指定文件路径,例如:example.txt。
(2)要忽略整个目录,请指定目录路径,例如:/my_directory/。
(3)使用通配符进行模式匹配,例如:*.log将忽略所有以.log结尾的文件。
(4)指定以斜杠(/)开头的规则将从存储库的根目录开始匹配,否则将在子目录中递归匹配。
(5)特殊字符转义:如果要匹配包含特殊字符的文件或目录,请使用反斜杠进行转义,例如:special\ file.txt。
(6)目录通配符:使用斜杠(/)指定目录通配符。例如,要忽略所有的.git目录(包括子目录),可以使用**/.git/。
3、show case
# 忽略所有 .log 文件
*.log
# 忽略 .env 文件
.env
# 忽略build(根目录)目录(切记不要写成/build/**)
/build/
# 忽略.gitignore子目录(含同级)config(切记不要写成config/**)
config/
# 忽略特定目录下的文件
/some_directory/*.txt
# 忽略任意层级的 ENV 目录 (**匹配任意目录层级,经常用)
**/ENV/
# 忽略所有 .log 文件
忽略 .gitignore 子目录 target case
三、常用模板
1. JAVA Maven 项目
# ##########项目默认生成##########
# Project exclude paths
/target/
# ##########个人##########
HELP.md
target/