2017-12-29 重新规定格式,添加diff
2017-09-06 创建文章
概要
用于获取并设置仓库或全局或系统选项。这些变量可以控制 Git 的外观和操作的各个方面。
git config --local key value
- 配置仓库级用户名称和邮箱
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local user.name "wuao"
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local user.email 215731932@qq.com # 可以省去引号
可以省略 --local
wuaodeMacBook-Pro:SimpleGit wuao$ git config user.name wuao
wuaodeMacBook-Pro:SimpleGit wuao$ git config user.email 215731932@qq.com
- 配置全局级用户名称和邮箱
当安装 Git 后首先需要配置用户名称和邮箱地址。这是非常重要的,因为每次提交都会使用该信息。它被永远的嵌入到了你的提交中。只需要做一次这个设置,Git 将总会使用该信息来处理在全局中所做的一切操作。
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global user.name 吴奡
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global user.email 215731932@qq.com
- 配置系统级用户名称和邮箱
wuaodeMacBook-Pro:SimpleGit wuao$ git config --system user.name wuao
error: could not lock config file /etc/gitconfig: Permission denied # 无法锁定配置文件,权限被拒绝。
wuaodeMacBook-Pro:SimpleGit wuao$ git config --system user.email 215731932@qq.com
error: could not lock config file /etc/gitconfig: Permission denied
- 优先级
配置文件的权重是仓库 > 全局 > 系统。
Git 会使用这一系列的配置文件来存储你定义的偏好。首先会查找系统级,该文件含有对系统上所有用户及他们所拥有的仓库都生效的配置值,接下来会查找每个用户的配置文件即是全局级,最后会查找由用户定义的各个仓库中的配置文件即是仓库级。以上阐述的三级配置从一般到特殊层层推进,如果定义的值有冲突,以后面级中定义的为准。可以直接手动在文件里面也可以运行 Git 命令编辑各个级别文件。
级别 | 配置文件位置 | 优先级 |
---|---|---|
仓库级 | .git/config(每个仓库 Git 目录下) | 一级 |
全局级 | ~/.gitconfig | 二级 |
系统级 | /etc/gitconfig | 三级 |
git config --local key
查看特定关键字对应级别的值。
- 查看仓库级的
user.name
配置
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local --get user.name
wuao
可以省略 --local
和 --get
wuaodeMacBook-Pro:SimpleGit wuao$ git config user.name
wuao
- 查看全局级的
user.name
配置
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global user.name
吴奡
git config --local -l
- 查看仓库级的配置清单
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
user.name=wuao
user.email=215731932@qq.com
- 查看全局级的配置清单
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global --list
core.excludesfile=/Users/wuao/.gitignore_global
core.autocrlf=input
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
user.email=215731932@qq.com
user.name=吴奡
commit.template=/Users/wuao/.stCommitMsg
- 查看系统级的配置清单
wuaodeMacBook-Pro:SimpleGit wuao$ git config --system -l
fatal: unable to read config file '/etc/gitconfig': No such file or directory # 无法读取配置文件,没有这样的文件或目录。
git config -l
查看当前生效的配置,这个时候会显示最终三个配置文件计算后的配置信息。可能会看到一个关键字出现多次,如这里的 user.name
就有两个值,这是因为 Git 从不同的配置文件中读取相同的关键字。在这种情况下,对每个唯一的关键字,Git 会使用最后的那个值。
wuaodeMacBook-Pro:SimpleGit wuao$ git config -l
credential.helper=osxkeychain
core.excludesfile=/Users/wuao/.gitignore_global
core.autocrlf=input
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
user.email=215731932@qq.com # 全局里面的配置
user.name=吴奡 # 全局里面的配置
commit.template=/Users/wuao/.stCommitMsg
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
user.name=wuao # 仓库里面的配置
user.email=215731932@qq.com # 仓库里面的配置
git config --local -e
执行这个命令的时候,Git 会用配置文件中设定的编辑器打开配置文件。
- 用编辑器打开仓库级的配置文件
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local -e
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
name = wuao
email = 215731932@qq.com
[site]
~
~
~
"~/Desktop/document/SimpleGit/.git/config" 11L, 190C
- 用编辑器打开全局级的配置文件
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global --edit
[core]
excludesfile = /Users/wuao/.gitignore_global
autocrlf = input
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
[user]
email = 215731932@qq.com
name = 吴奡
[commit]
template = /Users/wuao/.stCommitMsg
~
~
~
"~/.gitconfig" 14L, 415C
git config --local --add section.key value
添加配置项,注意 --add
后面的 section
、key
、value
一项都不能少,否则添加失败。
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local --add site.url http://wuao.site/
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local -e
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
name = wuao
email = 215731932@qq.com
[site]
url = http://wuao.site/ # 新增的配置
~
~
~
"~/Desktop/document/SimpleGit/.git/config" 14L, 229C
git config --local --unset section.key
删除指定配置项
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local --unset site.url
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local -e
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
name = wuao
email = 215731932@qq.com
[site] # 移除了配置
~
~
~
"~/Desktop/document/SimpleGit/.git/config" 12L, 197C
git config --local --remove-section section
删除 section
wuaodeMacBook-Pro:SimpleGit wuao$ git config --remove-section site
wuaodeMacBook-Pro:SimpleGit wuao$ git config --local -e
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[user]
name = wuao
email = 215731932@qq.com
~
~
~
"~/Desktop/document/SimpleGit/.git/config" 10L, 183C
git config --global diff.tool bc3
配置差异对比工具
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global -l
core.excludesfile=/Users/wuao/.gitignore_global
core.autocrlf=input
difftool.sourcetree.cmd=/usr/local/bin/bcomp "$LOCAL" "$REMOTE"
difftool.sourcetree.path=-ro
mergetool.sourcetree.cmd=/usr/local/bin/bcomp "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
mergetool.sourcetree.trustexitcode=true
user.email=215731932@qq.com
user.name=吴奡
commit.template=/Users/wuao/.stCommitMsg
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global diff.tool bc3
wuaodeMacBook-Pro:SimpleGit wuao$ git config --global -l
core.excludesfile=/Users/wuao/.gitignore_global
core.autocrlf=input
difftool.sourcetree.cmd=/usr/local/bin/bcomp "$LOCAL" "$REMOTE"
difftool.sourcetree.path=-ro
mergetool.sourcetree.cmd=/usr/local/bin/bcomp "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
mergetool.sourcetree.trustexitcode=true
user.email=215731932@qq.com
user.name=吴奡
commit.template=/Users/wuao/.stCommitMsg
diff.tool=bc3
git config --global mergetool.keepBackup false
在使用 git megetool 来解决冲突后,会生成备份文件 *.orig,大多数情况下不是我们想要的,在终端中配置这样就不会每次在解决冲突后生成对应的 .orig 文件了
网友评论