文章目录
官网不同语言的 .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.o1 directory, 6 files
其中,.gitignore 文件内容如下所示:
*.[io]
- 故在本地仓库中,
test.i文件、test.o文件、src/add.o文件、src/add.i文件会被忽略 - 而
test.c文件和add.c文件不会被忽略。 - 这里忽略的匹配模式是多级目录的。
多级目录 **
斜杠后紧跟两个连续的星号 **,表示多级目录。
shell
src/**/file
可以表示忽略 src/folder1/file 、src/folder1/folder2/***/foldern/file 等。
2023-07-29(六)