Git 基本配置

183 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第18天,点击查看活动详情

配置

Git 提供了一个叫做 git config 的工具,是专门用来配置或读取相应的工作环境变量。

这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 HOME 变量指定的目录,一般都是 C:\Documents and Settings\USER。

此外,Git 还会尝试找寻 /etc/gitconfig 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。

用户签名设置

配置个人的用户名称和电子邮件地址:

  • 基本语法
$ git config --global user.name 用户名
$ git config --global user.email 邮箱
  • 案例演示

全局范围的签名设置:

MyPC@CY-20220201QCIL MINGW64 /i/Workspace/Git_Workspace/itbbfx-wiki-server (master)
$ git config --global user.name itbbfx
MyPC@CY-20220201QCIL MINGW64 /i/Workspace/Git_Workspace/itbbfx-wiki-server (master)
$ git config --global user.email itbbfx@qq.com
MyPC@CY-20220201QCIL MINGW64 /i/Workspace/Git_Workspace/itbbfx-wiki-server (master)
$ cat ~/.gitconfig
[user]
        name = itbbfx
        email = itbbfx@qq.com

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

 

文本编辑器

设置 Git 默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。在前面安装 Git 的时候,Git 支持的编辑器众多,比如 notepad++、Emacs 等等。 如果你有其他偏好,比如 Emacs 的话,可以重新设置:

$ git config --global core.editor emacs

不过,大多数人都是使用 Linux 操作系统,建议使用 Vi 或者 Vim 编辑器。

差异分析工具

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:

$ git config --global merge.tool vimdiff

Git 可以理解 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合并工具的输出信息。

查看配置信息

要检查已有的配置信息,可以使用 git config --list/--l 命令:

$ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=I:/VersionTool/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=true
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
user.name=itbbfx
user.email=itbbfx@qq.com
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true