在 centOS 上设置 Git 配置文件 .gitignore
在项目开发工程中,并不是所有文件都需要保存到版本库中的。在 Git 工作区的根目录下创建一个.gitignore文件,然后把要忽略的文件名填进去,在 Git 提交git add .
的时候,就会自动忽略这些文件或目录。也不会被追踪(tracked),git push
的时候也不会上传到 Git 仓库。
Git 忽略规则优先级
在.gitignore文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
- 从命令行中读取可用的忽略规则。
- 当前目录定义的规则。
- 父级目录定义的规则,依次递推。
- $GIT_DIR/info/exclude文件中定义的规则。
- core.excludesfile中定义的全局规则。
- 如果本地仓库文件已被跟踪,那么即使在.gitignore中设置了忽略,也不起作用。git 跟踪文件,而不是目录。
- .gitignore文件也会被上传的到远程仓库,所以,同一个仓库的人可以使用同一个.gitignore文件。
- 在.gitignore文件中,每行表示一种模式。
- 空行不匹配任何文件。
*
:匹配多个字符。?
:匹配除/
外的任意一个字符。[]
:匹配多个列表中的字符。
Git 忽略规则
注释
注释使用#
开头,后面跟注释内容。如下所示:
# this is .gitignore file. # 以下是忽略的文件
忽略文件和目录
# 目录结构如下所示: . ├── folder │ └── file1 └── src ├── folder └── utils └── folder
# this is .gitignore file. # 以下是忽略的文件folder
表示忽略 folderName 文件和 folderName 目录,会自动搜索多级目录,比如:*/*/folderName
。同名的 folder 目录、src/folder 文件、src/utils/folder 文件都会被忽略。
仅忽略文件
# this is .gitignore file. # 以下是忽略的文件folder !folder/
!
表示反向操作。src/folder 文件、src/utils/folder 文件会被忽略,而同名的 folder 目录不会被忽略。
忽略目录
# this is .gitignore file. # 以下是忽略的文件folder/
folder 目录会被忽略,而同名的 src/folder 文件和 src/utils/folder 文件不会被忽略。
使用通配符
# 目录结构如下所示: . ├── src │ ├── add.c │ ├── add.i │ └── add.o ├── test.c ├── test.i └── test.o
# this is .gitignore file. # 以下是忽略的文件*.[io]
test.i 文件、test.o 文件、src/add.o 文件、src/add.i 文件会被忽略,而 test.c 文件和 add.c 文件不会被忽略。注意:这里忽略的匹配模式是多级目录的。
反向操作
!
:用来否定忽略。比如前面用了
# this is .gitignore file. # 以下是忽略的文件folderName !folderName/
表示仅忽略 folderName 文件,而不忽略 folderName 目录。
多级目录
/**
:斜杠后紧跟两星号,表示多级目录。
# this is .gitignore file. # 以下是忽略的文件src/**/file
可以表示忽略 src/folder1/file 、src/folder1/folder2/***/foldern/file 等。