Allen's blog Allen's blog
首页
面经
算法 (opens new window)
分类

Allen

前端CV工程师
首页
面经
算法 (opens new window)
分类
  • shadowsocks代理架构

  • 博客搭建

  • 数据结构与算法

  • Git

    • Git常用命令快速查找
    • 初始(全局)配置
    • 代码回撤与回滚
    • 远程仓库
    • 分支管理
    • Git忽略文件语法
      • .gitignore 模式
      • 注释
      • 斜杠符
      • 文件名
      • 通配符
      • 方括号
      • 反模式
      • 本地.gitignore
      • 个人忽略规则
      • 全局.gitignore
  • 其他技术
  • Git
Allen
2023-04-10
目录

Git忽略文件语法

参考文章:如何使用.gitignore 忽略 Git 中的文件和目录 (opens new window)

# .gitignore 模式

.gitignore 文件是纯文本文件,其中每行包含一个模式,用于忽略文件或目录。.gitignore 使用 globbing pattern 模式来匹配带通配符的文件名。如果文件或目录包含在通配符,则可以使用单个反斜杠(\)来转义字

# 注释

以#开头的行是注释,将被忽略

# 斜杠符

斜杠符号(/)是目录的分隔符。 斜杠开头模式相对于.gitignore 所在的目录。如果模式以斜杠开头,则仅从仓库的根目录中开始匹配文件和目录。如果模式不是以斜杠开头,则它将匹配任何目录或子目录中的文件和目录。

如果模式以斜杠结尾,则仅匹配目录。当目录被忽略时,其所有文件和子目录也将被忽略。

# 文件名

最直接的模式是没有任何特殊字符的文件名。例如/access.log 仅匹配 access.log。而 access.log 将会匹配当前目录与子目录 access.log,logs/access.log ,var/logs/access.log。当以/斜杠符号结束时则匹配目录。例如 build/匹配 build 目录。

# 通配符

*星号符号匹配零个或多个字符。例如*.log模式将匹配error.log,logs/debug.log,build/logs/error.log等所有目录下以.log作为扩展名的文件。

**两个相邻的星号符号匹配任何文件或零个或多个目录。 当后跟斜杠(/)时,它仅与目录匹配。例如: logs/**将会匹配logs目录中所有文件与目录; **/build将匹配所有目录中出现以build命名目录与文件var/build,pub/build。

模式foo/**/bar将匹配​foo/bar,foo/a/bar,foo/a/b/c/bar。

?问号匹配单个任意字符。例如模式access?.log将会匹配access0.log,access1.log,accessA.log。

# 方括号

[...]方括号匹配方括号中包含的字符。当两个字符之间用连字符-隔开时,表示一个字符范围。该范围包括这两个字符之间的所有字符。范围可以是字母或数字。如果[之后的第一个字符是感叹号(!),则该模式匹配除指定集合中的字符以外的任何字符。

例如模式*.[oa]将匹配文件file.o,file.a。模式*.[!oa]将匹配file.s,file.1但不匹配file.0与file.a。

# 反模式

以感叹号(!)开头的模式将否定先前模式。此规则的例外是,如果排除了其父目录,则重新包含文件。例如模式 *.log与!error.log这将会匹配所有以.log作为扩展名文件,但不匹配error.log。

# 本地.gitignore

本地.gitignore文件通常放置在仓库库的根目录中。但是,您可以在仓库的不同子目录中创建多个.gitignore文件。 .gitignore文件中的模式相对于文件所在目录匹配。

在子目录中的文件中定义的模式优先于高于根目录中的模式。本地.gitignore文件与其他开发人员共享,并且应包含对存储库的所有其他用户有用的模式。

# 个人忽略规则

应在.git/info/exclude文件中配置特定于本地仓库且不应分发到其他仓库的模式。例如,您可以使用此文件忽略个人项目工具中生成的文件。

# 全局.gitignore

Git 还允许您创建全局.gitignore文件,您可以为本地系统上的每个 Git 仓库定义忽略规则。该文件可以命名为任意名称,并存储在任何位置。保存此文件的最常见位置是主目录。您必须手动创建文件并配置 Git 使用它。

上次更新: 2023/12/16, 09:22:46
分支管理

← 分支管理

最近更新
01
rollup使用配置文件rollup.config.ts打包
12-08
02
package.json导出类型
12-08
03
关键问题方案
11-17
更多文章>
Theme by Vdoing | Copyright © 2023-2023 Allen | Github
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式