[版权申明]非商业目的注明出处可自由转载
博文地址: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的配置呢?
-
可以打开上面提到的那些配置文件直接查看
-
通过命令
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事业奋斗终生,是它让我们实现了买房买车娶媳妇的愿望,是它让我们找到了一群乐于分享,单纯率直的朋友,希望你幸福…