git config

文章目录

  • 1.简介
  • 2.格式
  • 3.选项
  • 4.示例
  • 参考文献

1.简介

安装完 Git 后,需要对 Git 环境进行一次配置,且只需要配置一次。程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。

Git 自带一个 git config 的工具来设置控制 Git 外观和行为的配置变量,这些变量按照不同的作用级别默认存储在四个不同的文件中。 可以使用 --file 选项来显示指明配置文件的路径。

文件路径级别说明
/etc/gitconfig系统级别包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项 Git 会读写此文件
~/.config/git/config用户级别针对当前用户。 使用 --global 选项 Git 会读写此文件
~/.gitconfig用户级别针对当前用户。 使用 --global 选项 Git 会读写此文件。较新版本的 Git 会使用此配置文件
仓库目录/.gitconfig仓库级别对当前仓库有效。使用 --local 选项 Git 会读写此文件,为默认选项

从下到上,每一个级别会覆盖上一级别的配置,优先级如下:

仓库目录/.git/config > ~/.gitconfig > /etc/gitconfig

2.格式

git config [<options>]

3.选项

配置文件路径(Config file location)
--system使用系统级别的配置文件
--global使用当前用户全局配置文件
--local使用当前仓库的配置文件,为默认选项
-f, --file=<file>显示指定配置文件路径动作(Action)
-l, --list列出所有配置
--unset从配置文件中删除变量名匹配的某一行
--unset-all从配置文件中删除变量名匹配的所有行

4.示例

  • 配置用户信息。

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。

这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中。

git config --global user.name "John Doe"
git config --global user.email "johndoe@example.com"
  • 配置文本编辑器。

当 Git 需要你输入信息时会调用文本编辑器。 如果未配置,Git 会使用操作系统默认的文本编辑器,通常是 Vim。 如果你想使用不同的文本编辑器,例如 Emacs,可以这样做:

git config --global core.editor emacs
  • 让 Git 记住用户名和密码。

每次使用 HTTP 协议与 Git 远端交互时均需要输入用户名和密码,为了避免如此繁琐的操作,可以使用 Git 凭证系统来处理这个事情。 下面有一些 Git 的选项:
(1)默认所有都不缓存。 每一次连接都会询问你的用户名和密码。
(2)cache 模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。
(3)store 模式会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下。
(4)如果你使用的是 Mac,Git 还有一种 osxkeychain 模式,它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。
(5)如果你使用的是 Windows,你可以安装一个叫做 Git Credential Manager for Windows 的辅助工具。 这和上面说的 osxkeychain 十分类似,但是是使用 Windows Credential Store 来控制敏感信息。 可以在 here 下载。

其中部分辅助工具有一些选项。如 store 模式可以接受一个 --file <path> 参数,可以自定义存放密码的文件路径(默认 ~/.git-credentials )。cache 模式有 --timeout <seconds> 参数,可以设置凭证存放在内存的存活时间(默认是 900,也就是 15 分钟)。

# 设置记住密码(默认15分钟)
git config --global credential.helper cache# 设置记住密码,自定义有效时长,比如一小时后失效
git config --global credential.helper 'cache --timeout=3600'# 长期存储用户名和密码
git config --global credential.helper store# 长期存储用户名和密码,指定用户名密码存储位置
git config --global credential.helper 'store --file ~/.git-credentials'# 不记住用户名密码,以 HTTP 协议的 clone、pull、push 等每次请求,都需要输入用户名和密码
git config --global --unset credential.helper

如果变更了用户名或密码,只需要清除存放密码的文件(默认 ~/.git-credentials ),会提示重新输入。

  • 协议替换

当你想去克隆一个别人 Github 上的 repository 时,如果使用 HTTPS 协议无法访问,那么可以变更协议采用 SSH 来访问。除了在 clone 时显示变更协议,我们也可以通过配置,让 git 自动进行协议替换。

例如将 HTTPS 协议变更为 SSH 协议。

git config --global url."git@github.com:".insteadOf "https://github.com/"

一顿操作之后,你的 .gitconfig 中会多出一行参数设置:

[url "git@github.com:"]insteadOf = https://github.com/

设置之后,使用 git 进行 clone 时,资源 url 中协议和域名部分https://github.com/将被替换为git@github.com:

  • core.autocrlf 的配置。
# 提交时转换为 LF,检出时转换为 CRLF
git config --global core.autocrlf true   # 提交时转换为 LF,检出时不转换
git config --global core.autocrlf input# 提交检出均不转换
git config --global core.autocrlf false

一般 Windows IDE 会将换行改为 CRLF,所以建议设置为第二种,提交时转换为 LF,检出时不转换。

  • 查看配置信息。

使用git config -l, --list命令可以列出 Git 当前所有配置。

git config -l
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

或者通过输入 git config <key>git config --get <key>来检查 Git 的某一项配置。

git config user.name
Johngit config --get user.email
John@tencent.com

参考文献

git config

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI(Adobe lliustrator)教程+软件包

简介&#xff1a; 软件主要应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面的制作等&#xff0c;也可以为线稿提供较高的精度和控制&#xff0c;适合生产任何小型设计到大型的复杂项目。 通常用于创建LOGO(商标或徽标)&#xff0c;图标&#xff0c;插图…

【数据结构】线性结构——数组、链表、栈和队列

目录 前言 一、数组&#xff08;Array&#xff09; 1.1优点 1.2缺点 1.3适用场景 二、链表&#xff08;Linked List&#xff09; 2.1优点 2.2缺点 2.3适用场景 三、栈&#xff08;Stack&#xff09; 3.1优点 3.2缺点 3.3适用场景 四、队列&#xff08;Queue&#xff09; 4.1优点…

根目录满迁移docker文件

在 Ubuntu 下&#xff0c;迁移 Docker 的数据存储位置到另一个挂载点需要按照以下步骤进行操作。确保在操作之前备份重要数据&#xff0c;以防止意外情况发生。 步骤概述 停止 Docker 服务&#xff1a; bash sudo systemctl stop docker创建新的存储位置&#xff1a; 假设你有…

递归式函数

在java中&#xff0c;函数递归是会报编译错误的。比如我定义一个斐波那契函数&#xff1a; public class RecursiveFunction {public static void main(String[] args) {fibonacci x -> x < 3 ? 1 : fibonacci.apply(x - 1) fibonacci.apply(x - 2);} }它就报了这个错…

设计模式-三大分类

软件七大设计原则 1、单一职责 定义&#xff1a;每个类应该只有一个引起它变化的原因。 解释&#xff1a;一个类只负责一个功能&#xff0c;这样可以减少类之间的耦合&#xff0c;提高系统的可维护性和可扩展性。 2、开闭原则 定义&#xff1a;软件实体&#xff08;类、模块…

使用Dockerfile构建镜像

通过基础镜像 centos:7&#xff0c;在该镜像中安装 jdk 和 tomcat 以后将其制作为一个新的镜像 mscentos:7 创建目录 mkdir -p /kong/docker/dockerfile编写 Dockerfile 文件 vim DockerfileDockerfile 文件内容如下&#xff1a; # 指明构建的新镜像是来自于 centos:7 基础…

广义可加模型和光滑曲线拟合的R代码

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

jvm-并发-java基础-数据结构小测

这篇文章是一些练习题&#xff0c;答案后续更新。 请简述银行家算法 请简述死锁产生的条件 解决死锁的几种方式 简述synchronized锁的膨胀 什么是cas cas 的问题如何解决 jmm 简单理解 volatile 单例模式 线程安全的两种代码 懒汉&恶汉 线程池的7个参数分别是什么…

ABAQUS细观混凝土周期性边界(PBC)表征体元(REV)界面层(ITZ)及砂浆塑性损伤(CDP)模拟

混凝土的细观结构决定着其宏观破坏行为&#xff0c;对混凝土在结构尺度上采用细观模型将导致巨大的计算量而难以实现&#xff0c;表征体元&#xff08;‌REV&#xff09;‌方法可选取一定的平均范围来描述混凝土的性质和行为&#xff0c;这对于理解和模拟混凝土的损伤机理至关重…

构建高可用应用的设计模式与实践

高可用性&#xff08;High Availability, HA&#xff09;是现代分布式系统中必不可少的特性之一。高可用应用能够在面对系统故障、网络分区或资源压力等多种情况下&#xff0c;依然保证服务的连续性和稳定性。本文将介绍构建高可用应用的常见设计模式与实践&#xff0c;并提供J…

测试用例的设计方法

等价类 等价类概念&#xff1a;在所有测试的数据中&#xff0c;具有某种共同特征的数据子集 边界值 边界值分析是对程序输入或输出的边界值进行测试的一种黑盒测试方法 边界值是作为等价类的补充&#xff0c;其主要区别是&#xff1a; 边界值测试设计不是从某一个等价类中…

nacos注释配置未生效?

遇到的问题 Nacos中修改配置将配置的key 的注释&#xff0c;配置未发生变更问题 NacosValueAnnotationBeanPostPorcessor中有&#xff0c;获取key&#xff0c;是获取的所有注解上的值&#xff0c;而values是enviroment中的属性值 当我们注释掉nacos中的属性时&#xff0c;ke…

15. 【C++】详解搜索二叉树 | KV模型

目录 1.定义 初始化 插入 查找 删除 完整代码 2.运用 K 模型和 KV 模型详解 K 模型 KV 模型 代码解释 为了更好地理解 map 和 set 的特性&#xff0c;和后面讲解查找效率极高的平衡搜索二叉树&#xff0c;和红黑树去实现模拟&#xff0c;所以决定在这里对搜索二叉树…

Google资深工程师深度讲解Go语言-课程笔记

课程目录&#xff1a; 第1章 课程介绍 欢迎大家来到深度讲解Go语言的课堂。本课程将从基本语法讲起&#xff0c;逐渐深入&#xff0c;帮助同学深度理解Go语言面向接口&#xff0c;函数式编程&#xff0c;错误处理&#xff0c;测试&#xff0c;并行计算等元素&#xff0c;并带…

(vue)Vue读取public中的json文件,打包后只需更改包文件

(vue)Vue读取public中的json文件,打包后只需更改包文件 背景&#xff1a;增加账号需求。原本是在页面&#xff0c;每次都需技术人员添加再打包部署&#xff0c;现在放到json里&#xff0c;以后直接服务器改json就行。 旧版&#xff1a; let userArr [{username:aaa,password:…

VLAN 划分案例详解

vlan 的应用在网络项目中是非常广泛的&#xff0c;基本上大部分的项目都需要划分 vlan&#xff0c;这里从基础的 vlan 的知识开始&#xff0c;了解 vlan 的划分原理。 为什么需要 vlan&#xff1a; 1、什么是 VLAN&#xff1f; VLAN&#xff08;Virtual LAN&#xff09;&…

springboot 之 使用easyexcel导出数据时数据格式转换问题

背景 导出数据库中的数据&#xff0c;有些字段格式为LocalDateTime需要转化为String. 软件版本 springboot 2.7.17 easyexcel 3.0.5 代码 //实现相关接口&#xff0c;进行格式转化 import com.alibaba.excel.converters.Converter; import com.alibaba.excel.metadata.Globa…

Python数据分析实战:利用ARIMA模型洞察股市规律

在股市中&#xff0c;数据的波动与变化风云莫测&#xff0c;难以捉摸。然而&#xff0c;借助科学的分析方法和工具&#xff0c;我们或许能够找到一些数据规律。今天&#xff0c;我们聊聊如何使用Python编程语言&#xff0c;结合ARIMA模型来洞察股市的变幻&#xff0c;为我们的投…

精确控制Conda环境:使用conda install命令安装特定版本的包

精确控制Conda环境&#xff1a;使用conda install命令安装特定版本的包 在Python项目开发中&#xff0c;依赖管理是确保项目可复现性和稳定性的关键环节。Conda作为Anaconda发行版中的包管理器&#xff0c;提供了强大的依赖管理功能&#xff0c;允许用户安装和管理不同版本的包…

【TCP通信】

7.18学习记录 NetAssist.exeTCP/IP协议准备工作做好之后开始创建方案 通信架构设备管理接收事件发送事件心跳管理响应配置 VM4.0二次开发 NetAssist.exe 网络协议调试助手文件&#xff0c;支持UDP和TCP协议。只需要输入主机的地址和端口就能获取数据解析。要用到的协议是 TCP/…