.gitignore 文件

文章目录

    • [官网不同语言的 `.ignore` :](#官网不同语言的 .ignore :)
    • 规则
      • 基本规则
      • 忽略文件和目录
      • [仅忽略 folderName 文件,不忽略 folderName 目录 (!)](#仅忽略 folderName 文件,不忽略 folderName 目录 (!))
      • [只忽略目录 /](#只忽略目录 /)
      • [使用通配符 * ? []](#使用通配符 * ? [])
      • [多级目录 **](#多级目录 **)

官网不同语言的 .ignore :

https://github.com/github/gitignore/tree/main


规则

基本规则

  • 使用 # 作为注释
  • .gitignore 文件中,每行表示一种模式;
  • 空行不匹配任何文件;
  • git 跟踪文件,而不是目录;
  • 如果本地仓库文件已被跟踪,那么即使在 .gitignore 中设置了忽略,也不起作用。
  • .gitignore 文件也会被上传的到远程仓库,所以,同一个仓库的人可以使用同一个.gitignore 文件。

忽略文件和目录

复制代码
folderName
  • 表示忽略 folderName 文件和 folderName 目录,src/folder 文件、src/utils/folder 文件都会被忽略,即:不会被提交到远程仓库中。
  • 会自动搜索多级目录,比如:*/*/folderName

仅忽略 folderName 文件,不忽略 folderName 目录 (!)

模式如下所示:

复制代码
folderName
!folderName/
  • 反向操作 ! : 表示之前忽略的匹配模式再次包含在跟踪内容里。
  • src/folderName 文件、src/utils/folderName 文件会被忽略,而同名的 folderName 目录不会被忽略。

只忽略目录 /

复制代码
folderName/

忽略 folderName 目录,包括:

  • 当前目录下的foldernName,例如:folderName/
  • 多级目录下的 folderName,例如:*/*/folderName/
  • 同名的 src/folder 文件和 src/utils/folder 文件不会被忽略。

使用通配符 * ? []

常用的通配符有:

  • 星号 * :匹配多个字符;

  • 问号?:匹配除 / 外的任意一个字符;

  • 方括号 [xxxx]:匹配多个列表中的字符;

    $ tree
    .
    ├── src
    │ ├── add.c
    │ ├── add.i
    │ └── add.o
    ├── test.c
    ├── test.i
    └── test.o

    1 directory, 6 files


其中,.gitignore 文件内容如下所示:

复制代码
*.[io] 
  • 故在本地仓库中,test.i 文件、test.o 文件、src/add.o文件、src/add.i 文件会被忽略
  • test.c 文件和 add.c 文件不会被忽略。
  • 这里忽略的匹配模式是多级目录的。

多级目录 **

斜杠后紧跟两个连续的星号 **,表示多级目录。

shell 复制代码
src/**/file 

可以表示忽略 src/folder1/filesrc/folder1/folder2/***/foldern/file 等。


2023-07-29(六)

相关推荐
wxr06162 小时前
GIT学习
git·学习
猫头虎4 小时前
2026最新|GitHub 启用双因素身份验证 2FA 教程:TOTP.app 一键生成动态验证码(新手小白图文实操)
git·开源·gitlab·github·开源软件·开源协议·gitcode
爱学英语的程序员5 小时前
让AI 帮我做了个个人博客(附提示词!)
人工智能·git·vue·github·node·个人博客
liu****6 小时前
git工具
git·python·算法·机器学习·计算机基础
wxr06167 小时前
git无法克隆
git
cooldream20099 小时前
Git 拒绝推送(Push Rejected)问题全解析与解决方案实战指南
git
wxr06169 小时前
GIT无法push
git·gitee
装不满的克莱因瓶11 小时前
【踩坑】IDEA提交Git .gitignore忽略文件不起作用
java·git·.gitignore·踩坑
cos21 小时前
Fork 主题如何更新?基于 Ink 构建主题更新 CLI 工具
前端·javascript·git
OpenMiniServer1 天前
当 AI 成为 Git 里的一个“人”
人工智能·git