1. 配置gitconfig
用户可以通过配置git的config文件定义和保存偏好,config文件有多个对应不用的作用域,且优先级高的会覆盖低的:
1.1 三个作用域
config路径 | 作用域 | 配置命令 | 优先级 |
---|---|---|---|
project /.git/config |
project 项目 |
git config (--local 缺省参数) | 高 |
~/.gitconfig | 当前用户 | git config --global | 中 |
/etc/gitconfig | 本机所有用户 | git config --system | 低 |
1.2 配置操作
- 查看配置文档:
git help config
- 查看已有配置
命令 | 结果 |
---|---|
git config -l | 显示所有级别的配置内容(按由低到高的优先级 排列),即多个重复项中最后一项生效 |
git config --local -l | 显示本项目的配置内容 |
git config --global -l | 显示当前用户的配置内容 |
git config --system -l | 显示本机所有用户的配置内容 |
git config --scope key | 显示指定作用域的指定key的值, 例如:git config --global user.name |
- 配置config
配置方式 | 操作 |
---|---|
命令配置 | 例如:git config --global user.name "kivi" |
编辑config文件 | 例如:vim ~/.gitconfig |
1.3 配置实例
要正确使用git,只要简单配置如下即可:
git config --global user.name "kivi"
git config --global user.email shichengyx@sina.com
2. 配置忽略文件
git可以配置忽略文件来忽略工作区的指定文件,例如Java项目可通过配置忽略文件来禁止class文件上传到git仓库。
2.1 两个配置文件
- git忽略文件有两个:.gitignore和exlude文件,Git根据两个文件的内容忽略相应文件。
- .gitignore隶属于工作区,是项目的一个文件,被Git版本管理(同其他文件一样以blob对象的形式存储在.git/objects/目录下)。适合配置项目公开的忽略文件,其他开发者可见
- exclude文件位于.git/info/exclude,不属于项目,不被Git版本管理。适合配置本地的忽略文件,其他开发者不可见
2.2 语法规则
git help ignore 查看详细规则
#
起始的行为注释行-
绝对路径和相对路径
- 绝对路径:以
/
起始的路径,例如:/bin/
仅忽略根目录下的bin文件下的文件。 - 相对路径:非
/
起始的路径,例如:bin/
忽略任意层级下的bin文件夹下的文件
- 绝对路径:以
-
忽略文件还是目录?
- folderA/name:忽略folderA下的
name
文件和文件夹。 - folderA/name/:忽略folderA下的
name
文件夹。
- folderA/name:忽略folderA下的
-
特殊字符:
!
、?
、*
、**
和[]
-
!
:排除 -
?
:匹配任意一个字符【类似regex的.
】 -
*
:匹配任意多个字符(在Linux和Windows平台表现不同,Linux下等同与**
,Windows则不等同) -
**
:匹配任意层级目录【类似regex的.*
】 -
[]
:匹配一个字符组【等同regex的[]
】
-
2.3 配置gitignore
vim .gitignore
# 这是一行注释
.[oa] # 忽略以.o、.a结尾的文件或文件夹
.html # 忽略以.html结尾的文件或文件夹
!foo.html # 但foo.html除外
/bin/*.class # 忽略/bin/下以.class结尾的文件,不包括/foo/bin/.class
lib/ # 忽略lib下所有文件
target/*.jar # 忽略target下以.jar结尾的文件,不包括target/foo/foo.jar
doc/**/*.txt # 忽略doc下所有以.txt结尾的文件
2.4 配置exclude
vim .git/info/exclude
,参考.gitignore配置。