git添加文件至忽略列表|.gitignore文件的配置
基本介绍
Git 的 .gitignore
配置文件用于配置不需要加入到版本管理中的文件,比如说一个项目在开发的过程中项目的目录里还会有一些本地的临时文件,比如java开发中,idea项目会有.idea
文件夹,也会有target
文件夹这些,这些是我们代码管理里所不需要的,但是又不可避免的存在
每次git status
都会显示Untracked files ...
所以这个时候就可以通过配置.gitignore
来解决,这个文件默认放在项目的根目录,为这个Git项目配置忽略列表,同时也可以通过命令配置本地全局的忽略列表
$git config –global core.excludesfile ~/.gitignore
创建文件
对于Windows用户,如果你在资源管理器里新建一个.gitignore
文件,它会非常弱智地提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore
了。
也可以在git bash中 采用vim .gitignore
,然后编辑好之后:wq!
保存
语法规范
- 空行或是以
#
开头的行即注释行将被忽略; - 以斜杠
/
结尾表示目录; - 以星号
*
通配多个字符; - 以问号
?
通配单个字符 - 以方括号
[]
包含单个字符的匹配列表;(比如说忽略Python编译产生的.pyc
、.pyo
就可以写*.py[co]
) - 以叹号
!
表示不忽略(跟踪)匹配到的文件或目录;
可以在前面添加斜杠
/
来避免递归
比如/dir/
就是当前的dir文件夹,不包含子文件夹(例如/abc/efg/dir
)
而dir/
不仅仅是当前的文件夹也包括子文件夹(例如/abc/efg/dir
)
配置文件示例
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO
# 忽略 build/ 文件夹下的所有文件,包括子目录下的subdir/build文件夹中的文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf
配置文件模板
Github 上为开发者提供了各种环境以及各种编程语言的 gitignore 文件配置模板:https://github.com/github/gitignore