文章目录
官网不同语言的 .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(六)