.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. Must be called at the top of a `setup` function vue3使用vue-i18n时出现的报错

    在某js文件中引入 import {useI18n} from "vue-i18n"; 使用:useI18n().t('APP_LOADING') 修改后: import i18n ...

  2. 为什么对1e9 + 7取模

    在刷题的时候,很多题目答案都要求结果对1e9 + 7取模 刚开始我非常不理解,为什么要取模,取模难道结果不会变吗? 答案是结果会变,但因为原本需要得出的答案可能超出int64的范围,比如他叫你计算50 ...

  3. ACM 的正确入门方式是什么?

    作者:数学lover 链接:https://www.zhihu.com/question/51727516/answer/127265733 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...

  4. C++ sort排序

    sort(begin, end, cmp),其中begin为指向待sort()的数组的第一个元素的指针,end为指向待sort()的数组的最后一个元素的下一个位置的指针,cmp参数为排序准则,如果没有 ...

  5. MySQL:查询语句 case when then 的用法

    转载网址: https://blog.csdn.net/h123hlll/article/details/122366213

  6. SpringCloud微服务实战——搭建企业级开发框架(五十一):微服务安全加固—自定义Gateway拦截器实现防止SQL注入/XSS攻击

      SQL注入是常见的系统安全问题之一,用户通过特定方式向系统发送SQL脚本,可直接自定义操作系统数据库,如果系统没有对SQL注入进行拦截,那么用户甚至可以直接对数据库进行增删改查等操作.   XSS ...

  7. MyBatis 整体架构【包含 SQL执行流程】

    Mybatis 的整体架构分为三层,分别是基础支持层.核心处理层和接口层.基础支持层为核心处理层的功能提供了良好的支撑.

  8. 宝塔上部署FastAPI的步骤和一些注意点

    为了运维方便,选择直接用宝塔来管理python fastapi的项目,虽然直接部署可能性能更好更灵活,但是我选择了低层本,每个人的选择可能是不一样的,各有 考虑吧. 本文的大逻辑是先写一个hellow ...

  9. IDEA2022中部署Tomcat Web项目

    使用工具: IDEA2022 Tomcat9.0.4 1.下载Tomcat: 官网:https://tomcat.apache.org/ 找到需要的版本下载即可,下载完成解压即可用: Tomcat目录 ...

  10. Logoist - 适用于设计师以及初次使用者的快速制作精美 logo 工具

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/24c0f566dcf14be2aa72afaa78c87c40.png)>从简单的标识到设计开发.它只需要一点 ...