Files
GitGuide/docs/git/base/git-config.md
2021-03-18 17:06:57 +08:00

133 lines
3.2 KiB
Markdown

# [git config]配置
## 命令行操作范围
使用命令`git config`进行配置,各级别设置需要加上可选参数
# 系统级别
git config --system ...
# 全局级别
git config --global ...
# 仓库级别
git config --local ...
### 打印配置信息
* 获取配置信息
```
$ git config --list
user.name=xxx
user.email=xxx@163.com
core.editor=code
http.postbuffer=1048576000
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=git@github.com:ZJDoc/GitGuide.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
```
* 获取全局配置信息
```
$ git config --global --list
user.name=xxx
user.email=xxx@163.com
core.editor=code
http.postbuffer=1048576000
```
* 获取本地配置信息
```
$ git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=git@github.com:ZJDoc/GitGuide.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
```
**注意:需要进入一个`Git`仓库才能获取本地信息**
## 常用设置
1. 设置用户信息
2. 设置文本编辑器
3. 移除变量
### 设置用户信息
每次提交时都需加上用户名和邮箱地址,可以设置成全局变量
git config --global user.name user-name
git config --global user.email email-address
*设置节点为`user`,设置属性为`name`和`email`*
也可以在仓库中设置本地用户名和用户邮箱:
```
$ git config --local user.name xxx
$ git config --local user.email xxx
```
### 设置文本编辑器
`git`使用系统默认的编辑器,可以设置指定编辑器
# 未设置
git config --global core.editor vim
# 已设置,先删除再添加
git config --global --unset core.editor
git config --global core.editor vim
### 移除变量
# 移除单个变量
git config --global --unset 属性名
# 移除所有变量
git config --global --unset-all 属性名
## 配置文件地址
`git``3`个级别的配置文件:
1. `local`:本地文件存放在仓库中(`.git/config`),只针对当前仓库
2. `global`:全局文件存放为`~/.gitconfig``~/.config/git/config`,作用于当前用户的所有仓库
3. `system`:系统文件存放为`/etc/gitconfig`,作用于系统的每个用户
其优先级为`local > global > system`
*`windows`环境下的全局配置文件存放为`C:\\User\\$USER\\.gitconfig`*
### 编写格式
所有配置文件的编写格式都一样,可参考仓库级别的`config`文件,按照*section和key*进行配置
# 仓库级别
$ cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:zjZSTU/linux-guide.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
# 全局级别
$ cat .gitconfig
[user]
name = zxxx
email = 50xxxxx.com