Git 的配置说明
参考 Pro Git 的 Customizing Git - Git Configuration。更详细的配置项说明见:https://git-scm.com/docs/git-config 。
git 的 3 种配置
git 有 3 种配置,分别为当前工作区配置、全局配置、系统配置,各自的配置文件分别为:
- 当前工作区配置文件:
<repo>/.git/config
。 - 全局配置文件:
~/.gitconfig
。 - 系统配置文件:
/etc/gitconfig
。
git config
命令,分别可以使用 --local
、 --global
、 --system
来设置对应的git 配置:
1 | # 查看当前工作区配置 |
常见的配置项
1 | # 配置用户名 |
git config
命令说明(点击展开)
usage: git config [<options>]
Config file location
--global use global config file
--system use system config file
--local use repository config file
--worktree use per-worktree config file
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
Action
--get get value: name [value-regex]
--get-all get all values: key [value-regex]
--get-regexp get values for regexp: name-regex [value-regex]
--get-urlmatch get value specific for the URL: section[.var] URL
--replace-all replace all matching variables: name value [value_regex]
--add add a new variable: name value
--unset remove a variable: name [value-regex]
--unset-all remove all matches: name [value-regex]
--rename-section rename section: old-name new-name
--remove-section remove a section: name
-l, --list list all
-e, --edit open an editor
--get-color find the color configured: slot [default]
--get-colorbool find the color setting: slot [stdout-is-tty]
Type
-t, --type <> value is given this type
--bool value is "true" or "false"
--int value is decimal number
--bool-or-int value is --bool or --int
--path value is a path (file or directory name)
--expiry-date value is an expiry date
Other
-z, --null terminate values with NUL byte
--name-only show variable names only
--includes respect include directives on lookup
--show-origin show origin of config (file, standard input, blob, command line)
--default <value> with --get, use default value when missing entry
更多配置项
core.editor
git 默认使用环境变量 VISUAL
或 EDITOR
作为默认的编辑器,用户可以通过配置 core.editor
设置默认的编辑器。
commit.template
commit.template
可以让你配置 git commit
时的提交信息的模板文件:
1 | # 配置 commit 模板文件为 ~/.gitmessage.txt |
core.pager
配置默认的查看git 输出的工具,比如 git log
、 git diff
等,默认为 less,当然你也可以配置成其他的翻页工具:
1 | # 配置成 more |
user.signingkey
设置你的 GPG 签名id:
1 | $ git config --global user.signingkey <gpg-key-id> |
core.excludesfile
设置全局 ignore 的文件,该配置项相当于全局的 .gitignore 文件。
1 | $ git config --global core.excludesfile ~/.gitignore_global |
help.autocorrect
git 命令如果输入有误时,会提示是否存在类似的命令,比如:
1 | # 故意输错 chekcout,则提示相似的 checkout 命令 |
help.autocorrect
则可以让 git 自动纠正命令并执行:
1 | $ git chekcout master |
color.ui
设置 git 命令输出是否带有颜色。
git 还支持更细颗粒度的颜色输出配置:
1 | color.branch |
core.autocrlf
Windows 和 Linux/MacOS 的换行符是有差异的,Windows的换行符是 CRLF
,Linux/MacOS 的换行符是LF
,如果用户在 Windows 上提交代码,那 checkout 到Linux/MacOS 平台上则会有显示问题,开启 core.autocrlf
配置项则可以让 git 根据平台自动转换换行符。
1 | $ git config --global core.autocrlf true |
core.attributesFile
设置 .gitattributes 文件路径。
配置 merge 或者 diff 工具
git 还支持配置 merge 或者 diff 工具,比如如下的配置:
1 | $ git config --global merge.tool extMerge |
详细配置说明请参考 Customizing Git - Git Configuration。