[版权申明]非商业目的注明出处可自由转载
博文地址:https://blog.csdn.net/ShuSheng0007/article/details/115449596
出自:shusheng007

概述

Git的流行度自然不用我多说,但是关于Git的配置系统又有几个人掌握了呢?遇到问题基本上都是百度一顿搜索,然后疯狂尝试那些自己压根不明白的命令,最后将自己搞的精疲力尽,问题还不一定得到解决。今天我们就简单聊下Git的配置系统,至少保证你看过之后可以明白那些设令背后的含义,让你超越那些只会搜命令无脑尝试的码农…正所谓授人以鱼不如授人以渔

IT这个行业吧,真的是太奇葩了,别的行业都是尽量把自己的知识藏着掖着,生怕别人学会了抢自己饭碗。偏偏IT这个行业,不仅将自己的所学倾囊相授,还苦口婆心的生怕别人学不会,你说怪不怪?

Git的配置系统

git 的配置系统总体分三个层次,如下图所示。越往圆圈的中心,优先级越高,其会覆盖外部的配置。

例如确定git的用户名的过程如下:先检查local,如果找到了就停止。如果local里面没有配置这个属性,那么git就继续在global中找,找到即停止,但如果还是没有找到就继续在system中寻找,如果还是没有,那就真的是没了。

在这里插入图片描述

那么local、global与system分别代表什么含义呢?

  • local

指的是你代码仓库级别,就是那个有.git文件夹那个代码仓库 。我们可以为每个代码仓库配置不同的git属性。

配置文件位于:

.git/config

例如我在家里电脑使用vpn向公司的项目提交代码时,我不想显示默认用户名shusheng007,而想显示工作时的名称Ben,我就可以为公司这个项目单独配置git的用户名。

  • global

指的是用户级别。例如一台window电脑,上面可以设置多个用户,每个用户可以单独对git进行配置。

例如我的电脑上有两个账户:admin与shusheng007,我就可以分别为其配置git的一些属性,例如我把admin那个账户的git用户名配置为admin,而shusheng007配置为shusheng007。那么当我登录shusheng007这个账户提交代码时,就使用的是shusheng007这个名称。

配置文件位于:

Users/你的账户/.gitconfig
  • system

指的是Git的安装级别,一般可以认为就是那台安装Git的机器了。

配置文件位于:

Git的安装路径/etc/gitconfig

git的配置文件长什么样

git的配置文件长下面这样,[]里为类型,然后是其属性的配置

[http]
	sslBackend = openssl
	sslCAInfo = xxxxxx/Git/mingw64/ssl/certs/ca-bundle.crt
[core]
	autocrlf = true
	fscache = true
	symlinks = false
[user]
	name = shusheng007
	email = xxxx

如何查看git的配置

那么我们如何查看git的配置呢?

  1. 可以打开上面提到的那些配置文件直接查看

  2. 通过命令

git配置相关的命令,都是以 git config 开头的形式。注意- 后面跟简写,--后面跟全称,这是Unix/Linux约定的。

  • 查看所有git配置:
git config --list --show-origin

上面的命令不仅显示所有三级的配置,且还展示其来源:

//system
file:D:/Program Files/Git/etc/gitconfig diff.astextplain.textconv=astextplain
file:D:/Program Files/Git/etc/gitconfig filter.lfs.clean=git-lfs clean -- %f
...
//global
file:C:/Users/Administrator/.gitconfig  user.name=shusheng007
file:C:/Users/Administrator/.gitconfig  user.email=568894336@qq.com
//local
file:.git/config        core.repositoryformatversion=0
file:.git/config        core.filemode=false
file:.git/config        core.bare=false
file:.git/config        core.logallrefupdates=true
file:.git/config        core.symlinks=false

注意看上面的注释,指出了这些配置属于哪一级别

  • 查看单个git配置:
git config user.name

设置Git配置

  • 直接打开相应级别的配置文件进行编辑

可以手动用自己喜欢的编辑器打开配置文件进行编辑,也可以直接使用git命令唤起默认编辑器

下面的命令使用默认编辑器打开global级别的配置文件

git config --global --edit
  • 通过git命令

设置global级别的用户名为shusheng007

git config --global user.name shusheng007

移除global级别的用户名

git config --global --unset user.name

移除global级别的中[user]部分

git config --global --remove-section user

上面命令中的--global均可换成--local或者--system

配置git的默认编辑器为VsCode

git默认编辑器应该是Vim,一款在Linux中非常流行的命令行编辑器,不过最新版的git安装时已经可以选择默认编辑器了。Vim确实很强大,不过对于一直使用window的小伙伴来说可就要了亲命了,因为Windows用户重度依赖GUI类的编辑器,突然使用Vim,按哪哪不动,最后就剩下骂娘了…

使用如下命令可以使用默认编辑器打开local级别的配置文件

git config --local --edit

结果如下图
在这里插入图片描述
那现在已经进入Vim了,你要是不熟悉这个编辑器就不好弄了。按Esc键,输入: 然后输入q退出。

近几年VsCode迅速蹿红,我们今天就把git的默认编辑器设置成VsCode试试效果

第一步:确保你已经安装了VsCode并且配置了环境变量

第二步:配置core.editor属性

可以使用命令,也可以直接编辑配置文件,我们先使用命令配置一下

  • 使用命令行配置
git config --global core.editor "code --wait"

执行上面的命令后就可以了。但是每次都是以新建一个tab页的方式打开编辑器,如果你希望每次都打开一个新窗口,那么就需要加上--new-window

git config --global core.editor "code --wait --new-window"

如果想恢复Vim,使用下面命令即可

git config --global --unset core.editor
  • 直接编辑配置文件

使用下面命令用默认编辑器打开global级别的配置文件,或者自己到相应目录手动用自己喜欢的编辑器打开也可以

git config --global --edit

结果如下

[gui]
[user]
   name = shusheng007
   email = xxxxx
//在这里添加编辑器的配置
[core]
	editor = code --wait       

配置git的difftool与mergetool为VsCode

具体配置方法与上面如出一辙,这里只简单介绍一下:

  • 执行如下命令git将使用上一部分配置好的vscode打开配置文件
git config --global --edit
  • 将下面的配置粘贴上去,保存,关闭即可
[diff]
    tool = vscode-diff
[difftool]
    prompt = false
[difftool "vscode-diff"]
    cmd = code --wait --diff $LOCAL $REMOTE
[merge]
    tool = vscode-merge
[mergetool "vscode-merge"]
    cmd = code --wait $MERGED

配置git的默认编辑器为NotePad++

notepad++在Windows中非常流行,如果你使用Windows应该对其不会陌生,我们当然也可以将其配置为git的默认编辑器。

相信通过配置VsCode为默认编辑器的工作后,配置notepad++就变得很容易理解了。因为我们刚配置了global级别的默认编辑器为VsCode,我们现在将local级别的默认编辑器配置为notepad++

第一步:安装notepad++,已经安装请忽略

第二步:在Git命令行中执行如下命令

git config --local core.editor "'D:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

单引号里面的是notepad++的安装路径,后面那些参数都是在配置如何打开notepad++的。上面参数表示:每次打开一个新的窗口,没有tabBar且不加载插件。

我们可以执行如下命令,Git将使用notepad++打开local级别的配置文件。

git config --local --edit

其中--local可以省略,如下图所示

在这里插入图片描述

总结

看到这里相信你已经对git的配置系统有了大概的理解,至于更加复杂的配置就需要你参考官方文档,或者其他人的文章了,但是当你再次从网上搜索如果配置Git的某些特性时,你再也不懵逼了…

我觉得这种工具教程你真的应该点个赞,然后收藏起来,以便不时之需。我之所以写这些,其中一个原因也是为了我将来可以快速回看

最后,为我们所热爱的IT事业奋斗终生,是它让我们实现了买房买车娶媳妇的愿望,是它让我们找到了一群乐于分享,单纯率直的朋友,希望你幸福…

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐