git config是做什么的?

news2024/11/14 21:25:12

git config是做什么的?

  • git config作用
  • 配置级别
    • 三种配置级别的介绍及使用,
      • 配置文件说明
    • 使用说明
      • git confi查看参数
    • 默认/不使用这个参数 情况下 Git 使用哪个配置等级?
  • 一些常见的行为
    • 查看配置信息
    • 设置配置信息
    • 删除配置信息
  • 一些常用的配置信息
    • 用户信息
    • 使用例子
    • 默认编辑器
    • 默认合并工具和差异比较工具
    • 配置 Git 别名
      • 例子
    • 行尾转换(换行符处理)
    • true:在 Windows 上,Git 会自动将 CRLF(回车换行)转换为 LF(换行)存储,并且在检出时会将 LF 转换回 CRLF。
    • 配置推送的默认行为

git config作用

git config是Git的一个非常核心的命令,用于配置Git的行为和属性。
这些行为主要是关于git工作涉及到的一些配置,比如commit者的信息,默认编辑器的配置等等。

行为和属性包括一些常见的:

  • 用户信息:用户名和邮箱
    • 作用:用来标志每次commit的作者。(否则都不知道是谁提交的,不知道是谁的锅)
    • 如下图git log查看commit记录时可以看到每一个commit的作者及邮箱。(这个是可以配置的,但是开发过程中一般不会改动了)
      在这里插入图片描述
  • 编辑器:设置Git默认使用的文本编辑器
  • 合并工具和差异比较工具:配置 Git 使用的工具来处理合并冲突或比较文件差异。
  • 指令别名:通过创建git命令的别名来提高操作效率。-
  • Git的行为:配置Git的一些行为,比如换行符处理、默认推送方式等。

配置级别

Git 配置有三种配置级别,分别对应三种作用范围,配置值会根据其作用范围被存储在不同的配置文件中 (本质就是不同的配置文件) 。用户可以为不同的范围设置不同的配置值来符合自己的使用。

三种配置级别的介绍及使用,

作用范围越小应用优先级越高,接下来按应用优先级最高(作用范围越小)==>应用优先级(作用范围越大)最低来介绍:

应用优先级(越高越优先使用) 从高到低:
本地级 > 全局级 > 系统级

  • 本地级(Local-level):也叫仓库级,适用于某一个 Git 仓库,仓库级配置只对当前仓库有效。

    • 配置文件路径:这个配置存储在该仓库根目录下的 .git/config 文件中。也就是没有Git仓库都有一个这样子的文件。
    • 使用参数“–local” 来指定仓库配置
      • git config --local xxx
  • 全局级(Global-level):也就用户级,适用于当前用户的所有 Git 仓库。通常,用户会设置自己的用户名user.name、电子邮件user.email等信息,这些设置会在全局范围内生效。

    • 配置文件路径:这个配置存储在用户主目录/家目录 ~中的 .gitconfig 文件中。
    • 应用说明:这个是最常用的,配置它来实现配置所有的Git仓库信息,除非少部分需要当独配置特定的信息,才会配置本地级去覆盖全局级的配置。
    • 使用参数“–global” 来指定全局配置
      • git config --global xxx
  • 系统级(System-level):适用于系统中所有用户的配置(指系统中所有电脑用户的git配置)。一般来说,你不会频繁地修改这个级别的配置,除非你是系统管理员或进行全局配置。

    • 配置文件路径:存储在 Git 的安装目录下\etc\gitconfig。
    • 使用参数“–system” 来指定系统配置
      • git config --system xxx

配置文件说明

所有的配置都保存在配置文件当中,所以我们可以直接找到配置文件看看配置,甚至可以直接通过修改配置文件来修改配置,但是这样的操作不建议,毕竟git config就是为了用户不需要直接去修改配置文件而创建的,所以我们一般还是直接通过git config来配置/获取 配置信息。

使用说明

配置级别作为git config的一个参数,所以只要是git config命令都可以选择使用这个参数。
下面讲解的配置都是通过git config命令来配置的,所以都可以选择使用/不使用配置级别参数。

git confi查看参数

输入git config命令,可以获取该命令可使用的参数
在这里插入图片描述

默认/不使用这个参数 情况下 Git 使用哪个配置等级?

  1. 没有指定等级时,Git 默认使用 --local 配置:

    当你在一个 Git 仓库内运行 git config 命令时(不带 --global 或 --system 等选项),Git 会默认在当前仓库的 .git/config 文件中查找或修改配置项。

    如果没有找到仓库级配置,Git 会回退到 --global 配置:

  2. 如果你在一个仓库内没有找到相关配置项(即 .git/config 文件中没有设置),Git 会自动查找用户级配置,通常在用户的主目录下的 .gitconfig 文件中。

  3. 如果全局配置也没有,Git 会回退到 --system 配置。

一些常见的行为

查看配置信息

  • 查看所有的配置项:

    # (包括全局配置和局部配置)
    git config --list
    
    • 为了方便观看,通常不会直接查看全部,而是使用配置级别参数来查看某一级配置的所有配置项:
      # 查看本地级 所有配置项
      git config --local --list
      
      # 查看全局级 所有配置项
      git config --global --list
      
      # 查看系统级 所有配置项
      git config --system --list
      
  • 查看某个特定配置项,如查看user.name:

    # git config 配置项
    git config user.name
    

设置配置信息

# 语法:git config 配置项 配置项要配置的信息

# 例子:
	# 配置 配置项user.name 为 lxc
	git config user.name lxc

删除配置信息

使用参数–unset实现

# 语法:git config --unset 配置项

# 例子:
	# 删除本地的用户名
	git config --unset user.name

一些常用的配置信息

用户信息

用户信息主要是用来给commit表明作者身份的(每次commit都会把用户信息一起记录到git log当中);毕竟git是一个方便多人共同开发的一个代码管理工具,多人开发,我们需要知道每次commit的作者是谁。

用户信息包括:

  • user.name:表明commit时的用户名
  • user.email:表明commit时的邮箱地址

使用例子

  • 用户需求:
    • 一次性配置所有Git仓库默认的用户信息(user.name为lxc user.email为www.lxc.com)

      git config --global user.name lxc
      git config --global user.email www.lxc.com
      
    • 在特定某个Git仓库又要配置其他用户信息(user.name为lrd user.email为www.lrd.com)

      git config --local user.name lrd
      git config --local user.email www.lrd.com
      

默认编辑器

默认编辑器指的是Git默认使用的文本编辑器(例如,vim、nano、emacs 等),每当Git需要你编辑提交你的信息或合并冲突时,它将调用这个编辑器。
而这个默认编辑器我们可以通过git config进行修改成其他的编辑器。

  • core.editor:默认编辑器
  • 配置默认编辑器
    # 配置默认编辑器为nano
    git config core.editor nano
    

默认合并工具和差异比较工具

  • merge.tool:指定 Git 合并时使用的工具。
  • diff.tool:指定 Git 比较文件差异时使用的工具。
# 全局 均配置为 vimdiff
git config --global merge.tool vimdiff
git config --global diff.tool vimdiff

配置 Git 别名

可以为原来的Git命令设置一个便捷的别名,方便自己使用

  • 语法:git config alias.xx yyy
    • xx:别名
    • yyy:原git指令,例如status、add、commit等

例子

# 为git status 配置别名 git st,这样就可以直接用git st代替git status
git config --global alias.st status
# 为git checkout 配置别名 git co
git config --global alias.co checkout

行尾转换(换行符处理)

  • core.autocrlf:该配置项用于管理不同操作系统(特别是 Windows 和 Unix 系统)之间的换行符差异
    • 可配属性:
      • true:在 Windows 上,Git 会自动将 CRLF(回车换行)转换为 LF(换行)存储,并且在检出时会将 LF 转换回 CRLF。

        git config --global core.autocrlf true
        
      • input:仅在提交时将 CRLF 转换为 LF,但检出时不做转换。
      • false:不做任何转换,保持原样。

配置推送的默认行为

  • push.default:配置 git push 的默认行为。常见的选项包括:
    • 可配属性:
      • simple:仅推送当前分支到与远程对应的分支。
      • matching:推送所有名称匹配的分支。
      • current:推送当前分支到远程。
      • upstream:推送当前分支到其上游分支。

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

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

相关文章

Warped Universe游戏即将在Sui上推出,为玩家提供多样化的游戏体验

Warped Games选择Sui作为其即将推出的创新多类型游戏Warped Universe的首选Web3技术。Warped Universe让玩家可以体验第三视角实时动作、回合制策略和基地建设等玩法。该游戏使用Unreal Engine 5开发,将借助Sui的技术使玩家能够拥有、交易和变现其游戏内资产。 War…

Autosar CP XCP规范导读

XCP 模块在汽车电子系统架构中起到重要作用,通过与多个模块的连接,实现了数据采集、校准、诊断等功能。它通过 RTE 进行控制,通过 PDUR 进行数据路由,通过通信硬件抽象层访问底层硬件,并与操作系统和其他相关模块协同工作,确保系统的稳定运行。 主要功能用途 通信协议支…

Scala学习记录,case class,迭代器

case class case class创建的对象的属性是不可改的 创建对象,可以不用写new 自动重写:toString, equals, hashCode, copy 自动重写方法:toString,equals,hashCode,copy 小习一下 1.case class 的定义语法是什么 基本形式:case …

B2B订货系统功能设计与代码开发(PHP + MySQL)

在B2B(Business to Business)电子商务中,企业之间的商品订购、交易和供应链管理是核心功能。一个高效的B2B订货系统可以帮助企业管理库存、订单、采购等业务流程。本文将介绍一个基于PHP与MySQL技术栈的B2B订货系统的功能设计与开发流程。 一…

前端CSS3 渐变详解

文章目录 CSS3 渐变详解一、引言二、CSS3 渐变基础1、线性渐变1.1、基本线性渐变1.2、改变渐变方向 2、径向渐变2.1、基本径向渐变2.2、设置径向渐变的中心 三、高级渐变技巧1、重复渐变1.1、重复线性渐变1.2、重复径向渐变 四、总结 CSS3 渐变详解 一、引言 在现代网页设计中…

2024-11-13 Unity Addressables2——寻址资源设置

文章目录 1 设置可寻址资源2 资源组窗口2.1 资源信息2.2 右键资源选项2.3 右键分组选项2.4 创建分组2.5 配置文件2.6 Tools 工具2.7 Play Mode Script2.7 构建打包 3 补充 1 设置可寻址资源 方法一:勾选 Inspector 窗口中的 “Addressable”。方法二:选…

课程讲解--哈夫曼树:原理、特性、应用与实践

前言 在这个信息如潮水般涌动的时代,我,一篇小小的文章,静静地躺在某个角落,怀揣着一份期待,一份对认可的渴望。 我可能没有华丽的辞藻堆砌成的璀璨外表,也没有跌宕起伏如传奇故事般的情节,但…

HP G10服务器ESXI6.7告警提示ramdisk tmp已满

物理服务器是HP G10 VCENTER内两台服务器报错提示ramdisk"tmp"已满,无法写入文件 登录ESXI命令行后发现两台主机的/tmp目录都没有空间了 定位到是ams-bbUsg.txt文件占用了大量的空间 1、关闭集群的DRS功能 2、迁移当前主机上面运行的所有虚拟机至其他主…

Mysql篇-Buffer Pool中的三大链表

为什么要有 Buffer Pool? 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,那就加个缓存。所以,当数据从磁盘中取出后,缓存内存中&#xf…

万字长文解读深度学习——ViT、ViLT、DiT

文章目录 🌺深度学习面试八股汇总🌺ViT1. ViT的基本概念2. ViT的结构与工作流程1. 图像分块(Image Patch Tokenization)2. 位置编码(Positional Encoding)3. Transformer 编码器(Transformer En…

PNG图片批量压缩exe工具+功能纯净+不改变原始尺寸

小编最近有一篇png图片要批量压缩,大小都在5MB之上,在网上找了半天要么就是有广告,要么就是有毒,要么就是功能复杂,整的我心烦意乱。 于是我自己用python写了一个纯净工具,只能压缩png图片,没任…

2.索引:MySQL 索引分类

MySQL中的索引是提高数据查询速度的重要工具,就像一本书的目录,可以帮助我们快速定位到所需的内容。选择适合的索引类型对数据库设计和性能优化至关重要。本文将详细介绍MySQL中常见的索引类型,并重点讲解聚集索引和二级索引的概念及应用。 1…

attention 注意力机制 学习笔记-GPT2

注意力机制 这可能是比较核心的地方了。 gpt2 是一个decoder-only模型,也就是仅仅使用decoder层而没有encoder层。 decoder层中使用了masked-attention 来进行注意力计算。在看代码之前,先了解attention-forward的相关背景知识。 在普通的self-atten…

Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)

作者:来自 Elastic Ranjana Devaji, Dana Juratoni Elasticsearch 8.16 引入了 BBQ(Better Binary Quantization - 更好的二进制量化)—— 一种压缩向量化数据的创新方法,其性能优于传统方法,例如乘积量化 (Product Qu…

C语言 char 字符串 - C语言零基础入门教程

目录 一.char 字符串简介 二.字符和字符串区别 1.取值范围相同2.字符串由多个字符构成3.字符串和字符使用 printf 函数 三.char 字符串遍历四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.char 字符串简介 在C 语言中,除了前面介绍…

小程序文件如何直接上传到oss?一篇文章搞定!

文件上传到 OSS 的小程序工具函数 此工具函数 uploadOss 用于在微信小程序中将临时文件上传到阿里云 OSS(对象存储服务)。它提供了灵活的参数设置,允许自定义文件路径、文件名前缀和文件目录。 目录 环境依赖函数说明参数使用示例注意事项…

使用Spring AI中的RAG技术,实现私有业务领域的大模型系统

前言 在上一篇文章《使用SpringAI快速实现离线/本地大模型应用》中,记录了如何使用SpringAI来调用我们的本地大模型,如何快速搭建一个本地大模型系统,并演示本地大模型的智能对话、图片理解、文生图等功能。 但在前文中,我们把S…

数据分析-系统认识数据分析

目录 数据分析的全貌 观测 实验 应用 数据分析的全貌 观测 实验 应用

4. 查看并更新langgraph节点

导入必要的库和设置工具 首先,我们需要导入一些必要的库,并设置我们的工具。这些工具将用于在Spotify和Apple Music上播放歌曲。 from langchain_openai import ChatOpenAI from langchain_core.tools import tool from langgraph.graph import Messag…

使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面

今天上线的时候发现系统不同显示好像不一样,苹果手机打开的时候是正常的,但是一旦用安卓手机打开就会出现label不置顶的情况。尝试了很多种办法,也在官方查看了map相关的文档,发现并没有给label设置zIndex的属性,只看到…