在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.htmlhttps://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 xiaoming@163.com


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/

Git配置文件与git config命令的更多相关文章

  1. git config命令使用

    1. git config简介 我们知道config是配置的意思,那么git config命令就是对git进行一些配置.而配置一般都是写在配置文件里面,那么git的配置文件在哪里呢?互动一下,先问下大 ...

  2. [转] git config命令使用第一篇——介绍,基本操作,增删改查

    平时我们在使用git的时候,很少去关注其配置是如何,而在实际开发中,对git config这个命令的使用也并不是很多,但是配置对一个程序和项目来说都是很重要的,我们今天来看看git的配置以及git c ...

  3. 转 git config命令使用

    . git config简介 我们知道config是配置的意思,那么git config命令就是对git进行一些配置.而配置一般都是写在配置文件里面,那么git的配置文件在哪里呢?互动一下,先问下大家 ...

  4. git学习(二):git config命令

    不同的git config操作不同的参数文件 git config --global // 配置用户目录下的.gitconfig那文件 git config --system // 配置系统级配置文件 ...

  5. git config命令详解

     Git有一个工具被称为git config,它允许你获得和设置配置变量:这些变量可以控制Git的外观和操作的各个方面. 一. 配置文件的存储位置 这些变量可以被存储在三个不同的位置: 1./etc/ ...

  6. 版本控制-Git服务器搭建和常用命令使用

    Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...

  7. Git 常见的一些小命令

        Git 常见的一些命令 关于一些参数比较多,比较复杂的都有单独进行介绍         1. git cherry-pick 挑拣命令,当我们不想合并分支,或者git pull 更新仓库,而是 ...

  8. Git的配置及常用命令

    Git配置 git config --global user.name "<username>" git config --global user.email &quo ...

  9. Git配置和一些常用命令

    Git:常用命令.... git clone <repo> git config –list git diff –staged add后,commit前的撤销:git rm –cached ...

随机推荐

  1. 自动下载MarkDown格式会议论文的程序

    近期师兄发给我一个压缩包让我整理文献,而我发现压缩包里的内容是这样: 这样: 和这样的: 我大概看了一下,可能有270多篇文章是这种格式,俗话说的好,没有困难的工作,只有勇敢的研究僧.所以决定用Pyt ...

  2. ES6—数值(Number,Math对象)(复习+学习)

    ES6-数值(Number,Math对象)(复习+学习) 每天一学,今天要学习ES6的关于数的扩展以及复习,然后通过看书,查阅资料,以及webAPI来搞清楚遇到的,没见过的对象方法等等,下面为本次学习 ...

  3. jsonpath语法的基本使用

    jsonpath的安装及使用方式: pip安装: Python3.7\Scripts> pip install jsonpath jsonpath的使用: obj = json.load(ope ...

  4. [cf1137F]Matches Are Not a Child's Pla

    显然compare操作可以通过两次when操作实现,以下仅考虑前两种操作 为了方便,将优先级最高的节点作为根,显然根最后才会被删除 接下来,不断找到剩下的节点中(包括根)优先级最高的节点,将其到其所在 ...

  5. [bzoj1863]皇帝的烦恼

    二分枚举答案,假设是ans,考虑判定答案从前往后计算,算出每一个将军与第一个将军最少和最多有多少个相同的奖牌,贪心转移即可 1 #include<bits/stdc++.h> 2 usin ...

  6. 保姆级神器 Maven,再也不用担心项目构建搞崩了

    今天来给大家介绍一款项目构建神器--Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现:它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的.流行的构建工具,从此以后,再 ...

  7. negix安装与配置2-反向代理一台

    negix反向代理: 1.实现效果:打开浏览器,输入www.123.com 跳转到linux系统主页面中 2.准备工作tomcat java环境 https://www.cnblogs.com/q13 ...

  8. 解决ip和域名都能够ping通但是启动nginx无法访问网页的问题

    解决思路 最近双11逛西部数码的官网看看有没有什么服务器优惠的时候,发现了可以申请一个一块钱用一整年的SSL证书,立马心动下单了,想想俺也可以用https装装X了哈哈 不过在部署完证书,并调整ngin ...

  9. 矩阵树定理&BEST定理学习笔记

    终于学到这个了,本来准备省选前学来着的? 前置知识:矩阵行列式 矩阵树定理 矩阵树定理说的大概就是这样一件事:对于一张无向图 \(G\),我们记 \(D\) 为其度数矩阵,满足 \(D_{i,i}=\ ...

  10. 洛谷 P5071 - [Ynoi2015] 此时此刻的光辉(莫队)

    洛谷题面传送门 一道其实算得上常规的题,写这篇题解是为了总结一些数论中轻微(?)优化复杂度的技巧. 首先感性理解可以发现该问题强于区间数颜色问题,无法用常用的 log 数据结构维护,因此考虑分块/莫队 ...