理解.gitignore语法:精准控制版本控制中的文件忽略

开源 0

目录

  • 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

也许您对下面的内容还感兴趣: