.gitignore 文件的作用

A gitignore file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected; see the NOTES below for details.

.gitignore 文件指定了一组未被跟踪的文件,这些文件应该被 Git 程序忽略(即,git status 时,不再提示这些文件尚未被跟踪)。如果文件已经被 Git 程序跟踪,则这些文件不会受到 .gitignore 的影响。

.gitignore 的文件结构和语法

.gitignore 是一个纯文本文件,文件中的每一行都代表一个匹配模式(pattern)。GIT 从上至下读取文件,后面行的优先级大于前面行。

匹配模式

  • 空行:无意义,可以作为分隔行,增加可读性(readability);
  • #开头: 注释。注意:# 必须为行的第一个字符。如果行要以 # 开头,需要在 # 之前插入一个 \,即,\#
  • 行首空格不会被忽略,因为文件名中可以包含空格;
  • 行尾空格会被忽略,如果想包含行尾空格,则需要在每个行尾空格之前插入一个 \
  • !(取反操作): 如果文件被前面的模式排除,但又匹配了 ! 后面的模式,则该文件将再次被包含进来;
  • /(目录分隔符): 目录分隔符可以出现在行首、行中、行尾,
    • 行首:/foo
    • 行中:foo/bar
    • 行尾:foo/
  • *通配符: 可以匹配任意长度的任意字符串(字符串中不能包含 /);
  • **通配符: 可以匹配任意长度的任意字符串(字符串中可以包含 /);
  • ?通配符: 可以匹配长度为 1 的任意字符串(字符串中不能包含 /);
  • 范围通配符: 如 [a-zA-Z],可以匹配长度为 1 的只包含英文字母的字符串;
  • 如果模式匹配了文件夹,也相当于匹配了文件夹的所有文件;

/ 的一些说明

  • 行尾:如果 / 出现在行尾,则 匹配模式 只会匹配文件夹,而不会匹配文件。

    比如,foo 会匹配所有名称是 foo 的文件和文件夹,而 foo/ 只会匹配所有名称是 foo 的文件夹。

  • 行首和行中:如果 / 出现在行首和行中,则 匹配模式 会以 .gitignore 所在的目录为基准,对所有的相对路径进行匹配(相较于之前,只看文件或者文件夹的名称)。

    比如 /foo, 会匹配 foo,但是不会匹配 bar/foo

一些例子

例子一

匹配模式 说明
foo.* 匹配所有以 foo. 开头的文件,如,foo.cfoo.java
!foo/bar 不匹配 foo/bar 文件或者文件夹
foo/**/bar 匹配 foo 文件夹下的中以 bar 开头的文件或者文件夹

例子二

文件夹结构

.
├── foo1
│   └── foo2
│   └── a.txt
└── foo2
└── b.txt

.gitignore 文件内容(1)

.*
/foo2

git status 输出结果(1)

On branch main

No commits yet

Untracked files:
(use "git add <file>..." to include in what will be committed)
foo1/ nothing added to commit but untracked files present (use "git add" to track)

.gitignore 文件内容(2)

.*
foo2

git status 输出结果(2)

On branch main

No commits yet

nothing to commit (create/copy files and use "git add" to track)

参考

.gitignore 文件语法介绍的更多相关文章

  1. Git中.gitignore文件不起作用的解决以及Git中的忽略规则介绍

    在Studio里使用Git管理代码的过程中,可以修改.gitignore文件中的标示的方法来忽略开发者想忽略掉的文件或目录,如果没有.gitignore文件,可以自己手工创建.在.gitignore文 ...

  2. Github使用.gitignore文件忽略不必要上传的文件 (转)

    原文地址: https://blog.csdn.net/gjy211/article/details/51607347 常用编程语言及各种框架平台下的通用   .gitignore   文件 http ...

  3. gitignore文件简单编写规则

    一.生成.gitignore文件 1.进入项目根目录,打开终端: 2.输入 vi .gitignore 创建并打开隐藏文件.gitignore: 二 . 设置要忽略上传的文件或文件夹 1.过滤整个文件 ...

  4. Git忽略提交规则 .gitignore文件

    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.简单来说一个场景:在你使用git add .的时候,遇到 ...

  5. 关于gitignore文件的创建与使用

    在我们使用github提交本地代码时,有些库文件和日志文件是不必要提交的,那如何处理这个问题呢?这个时候我们就会用到.gitignore文件了. 该篇博客我会介绍如何创建.gitignore,以及如何 ...

  6. Git的.gitignore文件配置

    .gitignore是Git工具的配置文件,用于屏蔽某些文件上传到线上. 创建.gitignore 在window系统中,不允许新建文件名以"."开头的文件,所以通过git bas ...

  7. 【转】Application.mk 文件语法规范

    原文网址:http://blog.sina.com.cn/s/blog_4c451e0e0100s6q4.html Application.mk file syntax specification A ...

  8. Android.mk文件语法规范及使用模板

    Android.mk文件语法详述 介绍:------------这篇文档是用来描述你的C或C++源文件中Android.mk编译文件的语法的,为了理解她们我们需要您先看完docs/OVERVIEW.h ...

  9. 如何编写gitignore文件

    原文链接:https://www.cnblogs.com/jingtyu/p/6831772.html 为什么要有.gitignore文件 项目中经常会生成一些Git系统不需要追踪(track)的文件 ...

  10. .gitignore文件的配置和生效

    1.配置 a)确保.gitignore文件和.git文件夹在同级目录 b)配置语法 # # 此为注释 – 将被 Git 忽略 *.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a ...

随机推荐

  1. oralce 11g 数据库及客户端client等的下载安装

    下载地址:https://www.oracle.com/cn/database/technologies/microsoft-windows.html

  2. 关于PB用JDBC连接MySQL,亲测有效

    以前自学过一段时间的PB,数据窗口让人印象深刻,前段时间,在西瓜视频看到有人录制了PB的教学视频,让我想起以前自学的那段时光,遇到了问题,也不知道问谁,现在网络发达,可以在网上查找问题,但是有大多数博 ...

  3. springboot + mybatisplus出现was not registered for synchronization because synchronization is not active

    原因一:缺少事务注解,底层mybatisplus的接口方法有事务 原因二:该服务器被限制访问要连接的数据库 原因三:乐观锁失效 乐观锁由@version注解标注,有以下使用要求 支持的数据类型只有:i ...

  4. Windows系统镜像下载站合集

    Windows系统镜像下载站合集https://latest10.win/https://msdn.itellyou.cn/https://hellowindows.cn/https://www.im ...

  5. mimikatz和procdump的密码抓取

    mimikatz mimikatz功能很强大,主要使用就是提取明文密码.哈希.PIN码和Kerberos凭证. 常用的只有两条命令: 注意:运行时使用管理员身份运行 privilege::debug ...

  6. 痞子衡嵌入式:MCUBootUtility v2.3.1发布,解决了长久以来非空flash可能无法下载的问题

    -- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3)发布过去3个月了,这一次痞子衡为大家带来了小版本升级v2.3.1(第一次做x.y.z中z级别更新),这个版本主要有两 ...

  7. Android笔记-跳转到相册选择图片

    跳转到相册选择图片 即设置一个点击事件,点击之后即可跳转到相册进行图片的选择 具体的实现步骤: 界面很简单的啦,这里就直接将源代码放出来啦: <?xml version="1.0&qu ...

  8. Yolov5——训练目标检测模型

    项目的克隆 打开yolov5官网(GitHub - ultralytics/yolov5 at v5.0),下载yolov5的项目: 环境的安装(免额外安装CUDA和cudnn) 打开anaconda ...

  9. Go语言 :使用简单的 for 迭代语句进行 TDD 驱动测试开发与 benchmark 基准测试

    前提准备与运行环境请参考:(新手向)在Linux中使用VScode编写 "Hello,world"程序,并编写测试-Ubuntu20.4   在 Go 中 for 用来循环和迭代, ...

  10. 四个常见的Linux面试问题

    四个常见的Linux面试问题. 刚毕业要找工作了,只要是你找工作就会有面试这个环节,那么在面试环节中,有哪些注意事项值得我的关注呢?特别是专业技术岗位,这样的岗位询问一般都是在职的工程师,如何在面试环 ...