Git
是一个源代码管理(SCM)工具,被许多开发人员使用。Git是最流行的针对SVN、Mercurial、CVS等的SCM,Git提供了很多特性和相关配置。Git被设计成灵活的配置。 git config
命令提供不同的用法,如更改用户名、电子邮件地址、颜色、HTTP代理、别名等。
git config命令帮助信息
我们可以打印 git config
以不同的方式帮助信息。一种方法是跑步 git config
不带任何选项的命令。另一种方法是使用 -h
提供相同简短帮助的选项。
$ git config
或者
$ git config -h

我们还可以打印更详细的帮助或git提供的所有选项 --help
选项如下。
$ git config --help

Git配置级别
在开始使用和示例之前 git config
我们应该学习一些关于git配置级别的基础知识。有3个级别的git配置文件以分层方式使用。它们被命名为 local
, global
和 system
配置。
本地
本地配置文件与给定的项目相关。本地配置文件存储在 .git
名字是 config
. 本地配置仅用于给定的项目,不会干扰其他项目。我们使用 --local
选项以指定、更改、设置、取消设置和管理本地配置。如果在本地、全局或系统配置中定义了相同的设置,则使用本地配置设置。这意味着本地配置是git配置文件中最首选的配置。
全球的
全局配置文件用于当前系统用户。属于当前系统用户的所有项目都将使用此全局配置文件。全局配置文件存储在 .gitconfig
文件。如果在全局和系统配置中定义了相同的设置,则使用全局配置设置。
系统
系统配置文件是所有用户和所有项目使用的最通用的git配置。它存储在 /etc/gitconfig
文件。根据全局和本地配置,系统级配置具有较少的优先权。如果在全局或本地配置中有相同的配置,则系统级配置将被省略。
配置文件位置/路径
Git配置存储在一个纯文本文件中,可以用vim、nano、notepad++等文本编辑器轻松读取,或者用cat命令打印到控制台。
本地配置文件路径
给定项目的配置文件存储在 .git
名为的项目目录 config
. 此配置文件仅用于当前项目。

全局配置路径
另外还有两个配置级别,如用于当前系统用户的全局配置级别和用于系统中所有用户的系统范围配置级别。
$ cat /home/ismail/.gitconfig

系统配置路径
系统范围的配置文件存储在 /etc/gitconfig
. 但是请记住,为了更改系统范围的配置文件,我们需要root权限。
$ cat /etc/gitconfig

列出所有配置
由于有3个级别的配置文件,而且有些文件比其他文件更倾向于逐个列出它们,因此理解配置是一项艰巨的任务。我们可以列出generall配置,它是通过将所有3个配置级别与 --list
选项如下。
$ git config --list

列出本地配置
我们可以使用这两种方法列出Git的本地配置 --list
和 --local
选项如下。
$ git config --list --local

列出全局配置
我们可以列出全局配置,这是用户范围内的配置 --list
和 --global
选项如下。
$ git config --list --global

列出系统配置
我们可以列出系统配置,这是用户范围内的配置 --list
和 --global
选项如下。

设置本地配置
如前所述,有3个级别的配置文件具有不同的首选项。在设置一些配置时,我们可以指定配置级别。为了设置仅在当前项目中使用的本地配置,我们将使用 --local
选项如下。在本例中,我们将电子邮件地址设置为 [email protected]
.
$ git config --local user.email "[email protected]"
设置全局配置
我们还可以使用 --global
选项如下。在本例中,我们将设置用户的电子邮件地址。默认情况下,没有明确的级别规范,全局级别将被设置。
$ git config --global user.email "[email protected]"
或者
$ git config user.email "[email protected]"
设置系统配置
我们还可以使用 --system
选项如下。在本例中,我们将设置用户的电子邮件地址。
$ git config --system user.email "[email protected]"
设置文本编辑器
在从命令行或GUI工作时,我们需要使用一些文本编辑器来编辑项目文件,如源代码、配置、文档等。默认情况下,系统默认文本编辑器与不同的git命令一起使用,以编辑源代码、配置和文档,我们可以使用 core.editor
选项中添加编辑器名称或路径,如下所示。在本例中,我们将把编辑器设置为vim。
$ git config core.editor "vim"
或者,我们可以使用以下git config命令来设置不同的流行文本编辑器。
#Atom Editor$ git config core.editor "atom"#Emacs Editor$ git config core.editor "emacs"#Nano Editor$ git config core.editor "nano"#Vi Editor$ git config core.editor "vi"#Sublime On MacOS Editor$ git config core.editor "subl -n -w "#Sublime On Windows 32 Bit $ git config core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"#Sublime On Windows 64 Bit $ git config core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"
排除文件和扩展名
在使用Git时,项目下的文件将被版本控制并保存到存储库中。由于项目中有许多不同类型的文件,有些文件可能不需要保存,或者是备份、临时、中间文件、图像、静态文件、交换文件等版本。我们可以通过使用名称或扩展名排除它们来省略它们。 我们将使用 core.excludefile
属性,以指定文件名或扩展名。 在本例中,我们将指定忽略文件名 .gitignore
.
$ git config core.excludesfile ".gitignore"

设置或更改用户名
在使用git开发应用程序时,每个开发人员都有自己的姓名和电子邮件地址。我们可以指定我们的名称,这样可以更容易地跟踪更改。提交、合并和更改时将显示开发人员的姓名。我们可以用 user.name
属性。在本例中,我们将名称设置为 İsmail Baydan
.
$ git config user.name "İsmail Baydan"
并使用以下命令打印
$ git config user.name

设置或更改电子邮件地址
每个开发人员通常都有一些电子邮件地址,可用于通信。我们将使用 user.email
属性设置当前用户的电子邮件地址。在本例中,我们将设置 [email protected]
作为电子邮件地址。
$ git config user.email "[email protected]"
我们可以使用下面的命令来打印当前的电子邮件地址。
$ git config user.email

别名
在使用git时,有许多不同的简单和复杂命令。其中有些是很长的记忆和琐碎的写作。别名可用于为命令创建别名,这通常会缩短命令的使用时间。例如 commit
命令可以缩写为 ci
作为别名。Git别名配置为 git config
命令并存储在git配置文件中。
创建别名
我们可以使用 alias
关键字,我们将把别名添加到 alias
关键字,然后提供真正的命令。在本例中,我们将创建一个名为 ci
它将运行 commit
命令。
$ git config alias.ci commit
我们将测试 ci
以下示例中的别名。
$ git ci

我们也可以在其他别名中使用现有的别名。在本例中,我们将使用 ci
中的别名 amend
别名。
$ git config alias.amend ci --amend
在终端中启用颜色
Git可以从命令行或终端使用,在那里输出可以着色。默认情况下,git输出是彩色的。对于颜色,可以用它的颜色来解释输出。我们可以使用 color.ui
属性 false
和 true
价值观。以下命令将禁用端子颜色。
$ git config color.ui "false"
我们可以启用如下颜色。
$ git config color.ui "true"
设置HTTP/HTTPS代理
在企业环境中使用git时,我们可能需要使用HTTP代理来访问internet或其他网络。我们可以使用 http.proxy
属性。我们还可以使用 http.proxy
属性。
$ git config http.proxy "http://192.168.1.1"
对于HTTPS代理
$ git config https.proxy "http://192.168.1.1"
取消设置HTTP/HTTPS代理
我们还可以取消设置以删除已创建的具有 --unset
选项并提供属性 http.proxy
和 https.proxy
就像下面一样。
$ git config --unset http.proxy$ git config --unset https.proxy
设置差异/合并工具
在开发应用程序以区分和合并不同版本的代码时,使用了diff/merge工具。Git使用默认的内部diff工具。但是我们可以用 diff.external
属性如下。在本例中,我们将diff工具设置为 diff
命令。
$ git config diff.tool "diff"
设置Windows自动结束行
Windows和Linux操作系统对纯文本文件使用不同的行尾字符。这可能会造成跨平台问题。由于git可以在Windows和Linux操作系统中使用,因此应该正确设置git。我们可以使用 core.autocrlf
属性如下。我们要出发了 true
此属性的值。
$ git config core.autocrlf true
取消设置配置
Git配置可以通过使用相关属性和 --unset
选项。在本例中,我们将取消设置 user.name
将被清空的属性。
$ git config user.name --unset