.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(六)

相关推荐
Doris_LMS21 小时前
Git的强软硬回退(三)
运维·服务器·数据库·git·idea
瓜酷月..21 小时前
GIT(了解)
git
misty youth1 天前
git命令常用指南
git·github
持续迷茫1 天前
lint-staged 中 --verbose 选项的深度解析
前端·git
lostElk1 天前
团队 Git 分管理全流程规范
git·github
oscar9991 天前
Roo Code之自定义指令(Custom Instructions),规则(Rules)
指令·规则·rule·roo code
亦是行人!1 天前
删除git中已经提交的target、logs、.idea文件
git
匆叔1 天前
Git下载全攻略
前端·git
奇树谦2 天前
Git配置:禁用全局HTTPS验证
git·网络协议·https
小安同学iter2 天前
在idea当中git的基础使用
git