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

相关推荐
ss2731 小时前
idea中git更新项目:将传入更改合并到当前分支,在传入更改上变基当前分支
java·git·intellij-idea
hopsky1 小时前
好用!Git 同时开发多个分支
git
secondyoung3 小时前
Git使用:rebase用法
c语言·经验分享·git·vscode
萧曵 丶4 小时前
CI/CD 流程
git·ci/cd
import_random5 小时前
[git版本控制]git push(详解)
git
bing_feilong6 小时前
gitee pull 总是需要用户名和密码,该如何设置?
git·gitee
毒鸡蛋6 小时前
GIT报错:Connection to git. closed by remote host.
git
ShallowLin7 小时前
Git简化分支管理(main+develop)
git
犹若故人归16 小时前
Github/Gitee和Git实践
git·gitee·github
007php00718 小时前
mySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据
数据库·redis·git·mysql·面试·职场和发展·php