用户可以通过配置git的config文件定义和保存偏好,config文件有多个对应不用的作用域,且优先级高的会覆盖低的:
config路径 | 作用域 | 配置命令 | 优先级 |
---|---|---|---|
project /.git/config |
project 项目 |
git config (--local 缺省参数) | 高 |
~/.gitconfig | 当前用户 | git config --global | 中 |
/etc/gitconfig | 本机所有用户 | git config --system | 低 |
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 |
配置方式 | 操作 |
---|---|
命令配置 | 例如:git config --global user.name "kivi" |
编辑config文件 | 例如:vim ~/.gitconfig |
要正确使用git,只要简单配置如下即可:
git config --global user.name "kivi" git config --global user.email shichengyx@sina.com 复制代码
git可以配置忽略文件来忽略工作区的指定文件,例如Java项目可通过配置忽略文件来禁止class文件上传到git仓库。
git help ignore 查看详细规则
#
起始的行为注释行
绝对路径和相对路径
/
起始的路径,例如:/bin/
仅忽略根目录下的bin文件下的文件。/
起始的路径,例如:bin/
忽略任意层级下的bin文件夹下的文件忽略文件还是目录?
name
文件和文件夹。name
文件夹。特殊字符:!
、?
、*
、**
和[]
!
:排除?
:匹配任意一个字符【类似regex的.
】*
:匹配任意多个字符(在Linux和Windows平台表现不同,Linux下等同与**
,Windows则不等同)**
:匹配任意层级目录【类似regex的.*
】[]
:匹配一个字符组【等同regex的[]
】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结尾的文件 复制代码
vim .git/info/exclude
,参考.gitignore配置。