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

相关推荐
测试开发技术8 小时前
使用 Git 时出现 unable to access,如何解决?
git·面试题
zhougl9969 小时前
git项目,有idea文件夹,怎么去掉
java·git·intellij-idea
tmacfrank17 小时前
Git 使用技巧与原理(一)—— 基础操作
git
dilvx18 小时前
git 配置 default editor
git
特种加菲猫1 天前
构建完整工具链:GCC/G++ + Makefile + Git 自动化开发流程
linux·笔记·git·自动化
Franklin1 天前
VS 版本更新git安全保护问题的解决
git
我是一只代码狗2 天前
idea中合并git分支
git
我是一只代码狗2 天前
idea中使用git
git·gitee·github
恋喵大鲤鱼2 天前
git restore
git·git restore
李少兄2 天前
Git Commit Message写错后如何修改?已Push的提交如何安全修复?
git·安全