程序员必备 Tips 之 .gitignore 语法

一、为什么要掌握.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/
.gitignore 语法可以通过以下几种规则来过滤文件和文件夹: 1. 使用斜杠(/)表示匹配到一个目录或文件,斜杠可以用于规则的起始、中间和尾部。例如,规则 "App.vue" 可以匹配到任意位置的 App.vue 文件。 2. 使用感叹号(!)表示取反操作,即让 Git 再次跟踪被忽略的文件或目录。但需要注意的是,指定忽略的文件或目录的父目录不能被整体忽略。例如,如果先包含 "src" 目录,然后忽略 "!src/App.vue" 是无效的,应该写成 "src/*",然后再忽略 "!src/App.vue"。 3. 使用星号(*)表示匹配任意字符,包括目录分隔符(斜杠)。例如,规则 "abc/**" 表示匹配 "abc" 之后任意目录下的文件。 4. 使用双星号(**)有三种语义:**/foo 表示匹配任意目录下的 "foo" 文件;"abc/**" 表示匹配 "abc" 之后任意目录下的文件;"a/**/b" 表示匹配 "a" 目录下任意级别的子目录 "b"。 5. 使用井号(#)表示注释,在注释后的内容会被忽略。 6. 空白符,如空格和回车,会被 Git 忽略,可以使用空格和回车来使得文件更易读。 除了 .gitignore 文件,还有其他工具也会使用 ignore 文件,如 .eslintignore, .prettierignore 等,它们的语法.gitignore 一样。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [.gitignore语法](https://blog.csdn.net/yuan_jlj/article/details/125148321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [.gitignore 语法](https://blog.csdn.net/huangpb123/article/details/125175028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进一步有进一步的欢喜

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值