git config介绍
作为现代软件开发中不可或缺的东西之一,Git 不只提供了强壮的版本操控功用,还答应用户依据自己的需求进行个性化装备。其中,git config
指令是咱们最常用的管理 Git 装备的东西。
git config的作用域
Git 装备存储了用户和库房的特定装备项,例如用户名、邮箱、默许修改器、长途库房地址等。这些装备信息存储在三个不同的地方,对不同的规模收效:
-
体系级别装备-system:适用于整个体系的装备,这个很少见。一般存储在
/etc/gitconfig
文件中。 -
全局装备-global:适用于当时用户的装备,咱们最常用的装备。一般存储在
~/.gitconfig
文件中。 -
库房级别装备-local:适用于当时 Git 库房的装备,每个项目的库房中都有一个。一般存储在库房的
.git/config
文件中。
以上三个装备优先级:库房级 > 全局 > 体系级
git config常用装备项
- user.name:这个装备项设置了提交代码时运用的用户名,它将被包含在每个提交记录中,以标识谁做了哪些更改。
- user.email:这个装备项设置了提交代码时运用的邮箱地址,用来与用户名一起标识提交者的身份。
- core.editor:设置默许的文本修改器。当需求修改提交音讯或处理兼并抵触时,Git 会自动调用这个修改器。
- http.postBuffer:缓存区巨细,假如文件过大能够调大此装备。 默许是nano,也能够设置为vim、gedit、notepad 、vscode等,nano我用起来不太习惯,vim、vscode都还能够
- core.ignorecase:操控文件名在 Git 中的巨细写敏感性。假如设置为 true,Git 将会疏忽文件名的巨细写差异。
-
color.ui:启用或禁用 Git 输出的彩色显现,使得在终端中更易于区分不同部分。经过设置
color.ui
为true
,就能够启用全局的 Git 操控台色彩,一起也支撑自定义 Git 操控台的色彩计划。 - alias.:经过设置别名,你能够为常用的 Git 指令创建简短的快捷方式,从而进步工作效率。
- http.proxy:当需求经过代理服务器访问长途库房时,能够运用此装备项指定 HTTP 代理。
- http.sslVerify:操控是否验证长途库房的 SSL 证书。在一些情况下,可能需求禁用 SSL 验证,但这会添加安全危险。
- push.default:设置推送行为,默许情况下,它确定了在不指定分支称号时 Git 应该推送的分支。
- credential.helper:用于设置 Git 如何存储和检索认证信息,例如用户名和密码,以便于在与长途库房通讯时运用。
- fetch.prune:设置是否在拉取长途分支时删除本地不存在的长途分支。
- diff.tool:设置默许的文件差异比较东西,用于比较文件之间的差异。
-
merge.tool:类似于
diff.tool
,这个装备项设置了默许的兼并东西,用于处理代码兼并时的抵触。 - remote.origin.url:设置长途库房的 URL,用于指定与之通讯的长途地址。
- remote.origin.fetch:设置从长途库房拉取的默许分支。
- init.defaultBranch:设置新建库房时的默许分支称号。
- gc.auto:设置自动废物回收的触发条件。
- rerere.enabled:启用或禁用 Git 中的 Rerere 功用,它能够协助自动重用从前处理的兼并抵触。
以下是global和local的默许装备:
git config的操作指令
git config
指令是 Git 中用来装备参数的首要东西。经过它,你能够在全局、当时用户、或许当时库房级别设置各种装备项。以下是一些常见的 git config
指令行操作示例:
- 检查当时装备
要检查当时 Git 装备的一切项及其对应的值,能够运用 --list
或 -l
参数。仅检查,不可修改。关于nano修改器,单击q可退出
检查默许装备,目录在哪里就显现哪里的装备。
git config --list
检查体系装备
git config --system --list
检查全局装备
git config --global --list
检查本地装备
git config --local --list
- 检查特定装备项
假如只想检查特定的装备项,能够直接指定它的称号进行检查:
git config user.name
- 设置装备项
也能够直接制定称号设置 Git 装备:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
- 清除装备项
假如想清除某个装备项的值:
git config --unset user.name
- 修改装备项
常见的缓存区约束问题
事情的原因是我想要将一个接近800MB的数据上传的gitee的库房中,但是报错如下:
error: RPC failed; curl 56 Recv failure: Connection reset by peer fetch-pack:
unexpected disconnect while reading sideband packet fatal: early EOF fatal:
fetch-pack: invalid index-pack output
“error: RPC failed; curl 56 Recv failure” 是一个常见的 Git 过错音讯,一般表明 Git 在与长途库房通讯时发生了问题。这个过错的原因可能有很多,一般导致这个过错的原因便是以下几种:
- 网络问题:这是最常见的原因之一。可能是网络连接不稳定或许与长途库房之间存在防火墙或代理问题。
- 长途服务器问题:长途库房服务器可能存在问题,导致无法完成通讯。在这种情况下,只能等候长途服务器康复正常。
-
SSL证书问题:可能是因为 SSL 证书的问题,导致无法树立安全连接。测验在 Git 指令中运用
-c http.sslVerify=false
参数来禁用 SSL 验证,以检查问题是否与证书有关。 - 文件巨细约束:可能是因为 Git 客户端或服务器装备了文件巨细约束,导致无法传输大文件。能够测验添加 Git 客户端的缓冲区巨细。
依据我的排查,我在做小的变动时和这个库房连接都没有问题,所以只可能是缓存区太小,不能传输过大的数据。 同样的,git clone代码时,假如项目总巨细比较小时克隆代码没问题,占用内存比较大时就会如上报错。
git config --global http.postBuffer
经过指令检查到当时缓存区过小
git config --global http.postBuffer 1048576000
此时再进行git push即可成功。