Git配置文件与git config命令
在Git配置文件中配置变量,可以控制Git的外观和操作的各个方面。通过git config命令可以获得和设置配置变量。
一、Git配置文件的位置
这些变量可以被存储在三个不同的位置:
1./etc/gitconfig 文件(系统级配置文件):包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。
2.~/.gitconfig 文件 (用户级配置文件):具体到某个用户。如果你传递参数选项’--global’ 给 git config,它将明确的读和写这个文件。
3.位于git目录的config文件 (也就是 .git/config,项目级配置文件) :具体到某个项目。如果你传递参数选项’--local’ 给 git config,或者不传参数给git config,它将明确的读和写这个文件。
配置文件生效生效优先级是先项目级(.git/config),后用户级(~/.gitconfig),最后系统级(/etc/gitconfig)。
二、Git配置文件详解
转自博客:https://baijiahao.baidu.com/s?id=1623254575291831567&wfr=spider&for=pc
由于git的使用大多都是以用户级的,所以我们日常用的最多都是通过用户级别的配置,接下来主要是用户级别配置文件的介绍。
1、别名[alias]
git别名是我们日常进行git配置使用最多的一部分内容。在git使用中,为了便捷,减少输入,git提供了别名机制来将标准的git命令自定义为自己习惯使用的命令。我们可以将git的命令设定别名为为1或2个字母的快捷方式。
[alias]
amend = commit --amend
amendf = commit --amend --no-edit
br = branch
ct = commit
co = checkout
cp = cherry-pick
df = diff
ds = diff --staged
l = log
lg = log --graph --all --format=format:‘%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)‘ --abbrev-commit --date=relative
lp = log --pretty=oneline
sa = stash apply
sh = show
ss = stash save
st = status
2、配色[color]
给你的工作终端设置一个好看的颜色也是每一个码农一直孜孜以求的目标,那就看本部分:
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "status"]
added = yellow
changed = green
untracked = cyan
[color "diff"]
meta = yellow
frag = magenta bold
commit = yellow bold
old = red bold
new = green bold
whitespace = red reverse
[color "diff-highlight"]
oldNormal = red bold
oldHighlight = red bold 52
newNormal = green bold
newHighlight = green bold 22
注:ui = auto是UI的默认设置。它在输出直接到终端时为输出着色,但在输出重定向到管道或文件时会省略颜色控制代码,以免导致问题。
3、核心[core]
[core]
editor = vim
excludesfile = ~/.gitignore
pager = diff-so-fancy | less --tabs=4 -RFX
autocrlf = input
核心设置部分包含与git相关的各种不同设置。我们设置到的部分有:
①editor = vim设置要用于编辑提交消息的编辑器(如果未设置此值,git将首先尝试从环境变量VISUAL或EDITOR读取你当前的编辑器,如果获取不到,最终会使用vi)。
②excludesfile =~/.gitignore允许指定全局性质的.gitignore文件。每个git存储库都可以设置特定的项目级别的.gitignore文件,该文件指定要从版本控制中排除的文件。但很多时候,每个git存储库中的一些文件都是相同的(例如,macOS上的.DS_Store,或者当你是Python开发人员时是*.pyc),为了避免重复设置,可以设置全局性质的.gitignore,该设置就会对该用户下所有的项目都生效。
③pager = diff-so-fancy | less --tabs = 4 -RFX指定要用于显示git log,git diff和git show命令输出的工具。默认情况下,git使用的是less。该配置中我们指定使用diff-so-fancy。
④autocrlf = input。 由于Windows使用的是与Unix和MacOS不同的行结尾,如果来自不同操作系统的人员提交到同一个存储库,则可能会造成一些混乱。关于换行设置三种操作系统(windows,linux和macOS)的是不一样的:
MacOS/Linux设置:autocrlf = input
Windows上的autocrlf = true。
4、凭据[credential]
[credential]
helper = cache --timeout=28800
凭据部分用来指定希望你需要默认保存的账号和密码。默认情况下,git根本不会包存储凭据,所以,每次连接时(http(s)性质的仓库)都会提示输入用户名和密用,这会很麻烦,你可以在此处设置保存户名密码,这样就可以不用每次都输入了(当然最好方式,是用ssh证书方法,即安全又方便)。凭据一般可以通过两种方式保存,保存在带有store选项的文件中(它将使用你的凭据创建纯文本文件),或使用cache选项将它们存储在内存中。当然根据你系统不同,还可以使用第三方的方式,比如MacOS下的osxkeychain,Windows下的Git Credential Manager)。此处我们使用的是,通过内存cache的方式,默认是15分钟,此处我们设置为8小时。
5、推送[push]
[push]
default = current
git push命令中包含分支的名称,如果你没有添加,可能导致意外的行为(例如我正在开发dev分支,但不小心,push到了master分支)。为了防止这种错误,我给push设置了default = current选项。现在,如果忘记包含分支的名称,git将尝试推送到具有相同名称的分支。如果它在远程库中找不到具有相同名称的分支,会新创建一个。
6、证书认证[http]
[http]
sslVerify = false
由于CA证书的问题,导致不能上传代码,简单粗暴的方法就是设置不认证证书。
关于git证书认证,可查看如下博客:https://www.cnblogs.com/yssjun/p/10145864.html,此篇博客介绍得十分详细。
三、git config命令详解
参考博客:https://www.cnblogs.com/shoshana-kong/p/11003192.html、https://www.cnblogs.com/fireporsche/p/9359130.html
git config命令能够获取和设置git配置文件中的配置变量。
1、查看配置文件中的配置项
git config [--system|--global|--local] [--get] 模块名.变量名
#查看用户级配置文件的所有配置项
git config --global --list 或 git config --global --list
#查看用户级配置文件的用户名配置项
git config --global user.name
#查看用户级配置文件的编辑器配置项
git config --global --get core.editor
2、设置配置文件中的配置项
git config [--system|--global|--local] 模块名.变量名 配置值
#设置用户级配置文件的用户名配置项
git config --global user.name xiaoming
#设置用户级配置文件的编辑器配置项
git config --global http.sslVerify false
3、在配置文件中添加配置项
git config [--system|--global|--local] --add 模块名.变量名 配置值
#在用户级配置文件的增加邮箱配置项
git config --global -add user.email
4、删除配置文件中的配置项
git config [--system|--global|--local] --unset 模块名.变量名
#在用户级配置文件的删除邮箱配置项
git config --global --unset user.email
5、编辑配置文件
git config [--system|--global|--local] -e
#编辑用户级配置文件
git config --global -e
6、获取帮助
如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令帮助信息:
git <verb>
git <verb> --help
git help <verb>
关于如何配置Git配置文件和git config的使用方法,本博文可能介绍得不是特别详细,如果想具体了解它们可以查阅官方文档:https://git-scm.com/docs/git-config/。