Git config 设置 Git 参数

Git 软件有许多可以去设置的参数,如用户名,用户邮箱,Git 的服务器等,这些参数的设置可以通过 git config 命令进行设置。而设置的参数会保存在相应的配置文件中。 1. /etc/gitconfig:该文件存放系统级的参数。该文件是系统级的文件,只有root用户可以设置,其中包括的是适用于所有用户的参数设置。如果要设置系统级参数,使用 git config 的时候需要有 root 权限,并且加上选项 --system。 2. ~/.gitconfig 或者 ~/.config/git/config:该文件中保存本用户的通用参数,不同的项目如果没有项目特殊性的参数则都会读取该文件中的参数。该文件是全局参数的配置文件。设置全局参数,需要在 git config 加上--global 选项。 3. .git/config:在项目目录的 .git 目录下面有项目的 config 文件。该文件中存储的参数是该项目独有的参数。设置项目自己的参数时候,只需要 git config 命令即可。 三个级别的配置文件的优先级不一样,项目自己的配置文件的优先级要高于用户全局配置文件,而用户全局配置文件的优先级要高于系统级的配置文件。如果某个参数在项目自己的 config 文件中和用户全局配置文件 ~/.gitconfig 文件中都有,但是值不一样,则会优先选择使用项目自己的 config 文件中的值。

设置用户

git config --global user.name "Er Wang"
git config --global user.email wanger@microsoft.com

这样就会在 ~/.gitconfig 文件中看到:

[user]
        email = wanger@microsoft.com
        name = Er Wang

如果设置项目级别或者系统级别,也会在相应的配置文件中找到相应的值。

设置编辑器

因为 git 在使用中需要对信息进行编辑,就需要编辑器的支持。如果没有设置编辑器的话,git 会使用系统默认 编辑器,一般类 Unix 系统的默认编辑器是 vim。如果需要设置编辑器,也可以通过 git config 进行。

git config --global core.editor emacs

这样就可以把编辑器设置为 Emacs。相应也可以在配置文件中看到设置。

[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        editor = emacs

显示设置的参数

如果需要显示当前的参数设置,可以使用 git config 命令加上参数名。

git config  core.editor
# emacs

如果需要显示所有的参数,可以使用 --list 选项。

git config --list

而如果只想要显示项目特有参数(local)或者用户全局参数(global),又或者系统参数(system)也可以通过加上相应选项来实现。

如显示项目特有参数:

git config --list --local

参数文件

因为 git 的参数都是存于前面提到的三个文件中,也可以直接手动或者程序去修改文件,从而改变参数。

使用命令 git config --help 可以列出 git config 的帮助文档,其中包含了所有可以设置的参数的介绍。Git 的参数基本可以分为客户端的设置和服务器端的设置。常用参数的介绍如下:

客户端常用配置

  • core.editor: 设置基本的编辑器,默认是vim。
  • commit.template:可以设置在 commit 时候信息的模板,指定该模板的路径。
  • core.pager:制定 Git 在显示更多内容的时候的分页程序,默认的是 less,可以设置为其他程序。
  • user.signingkey:设置签名所用的密钥。
  • core.excludesfile:指定一个包含有不要进入git的文件名信息的文件。与 .gitignore 文件作用一样。 还可以指定终端中显示的颜色:
  • color.ui:所有的操作是否显示颜色,可以选择 true, false或者 always。
  • color.branch:指定 branch 操作是否显示颜色,可以选择 true, false或者 always。
  • color.diff:指定 diff 操作是否显示颜色,可以选择 true, false或者 always。
  • color.interactive:指定 interactive 操作是否显示颜色,可以选择 true, false或者 always。
  • color.status:指定 interactive 操作是否显示颜色,可以选择 true, false或者 always。 这些都有自选项,可以覆盖父选项的值。

服务器常用配置

  • receive.fsckObjects:可以设置是否需要每次与服务器交换数据都检查文件一致性,可以选择设置为 true 或 false。设置为 true 则会强制每次都检查,相对比较耗费时间。
  • receive.denyDeletes:设置不许用户删除服务器上的分支。可以设置为 true,即不允许删除,或者 false, 允许删除。
By @Wolfson Liu in
Tags : #git,