当前位置: 首页 > news >正文

Git中config配置

文章目录

  • 简介
  • 一、config级别
  • 二、config基本配置


简介

Git是一个开源的分布式版本控制系统,用于处理各种规模的项目版本管理。它由Linus Torvalds设计,主要用于Linux内核开发。Git的特点包括速度、简单的设计、对非线性开发模式的支持、完全的分布式能力以及高效管理大规模项目的能力。基本概念包括本地仓库、工作区和暂存区。Git的使用场景包括克隆仓库、创建分支、修改代码、合并分支、生成补丁等。Git是一个强大且灵活的工具,适用于各种规模的软件开发项目,使版本控制更加高效和可靠。


一、config级别

在Git中,配置文件用于存储用户特定的设置和行为。Git使用三个级别的配置文件,按优先级从高到低依次为:系统、全局、本地。
1、系统级别配置文件:通常位于/etc/gitconfig,适用于系统上所有用户和项目。可以通过–system选项访问和修改此文件。

yingluo@yingluo-PC MINGW64 ~
##查看系统级别配置文件
$ git config --system  --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
##新增
git config --system --add core.autocrlf false
##修改core.autocrlf=true为false core.autocrlf:行尾结束符
##git config --system 需要修改的参数 需要修改的值
$ git config --system core.autocrlf false
error: could not lock config file D:/Program Files/Git/etc/gitconfig: Permission denied  ##尴尬说是没权限,那就根据路径手动修改保存即可。
##删除
git config --system --unset core.autocrlf false

2、全局级别配置文件:特定于当前用户,通常位于~/.gitconfig。可以通过–global选项访问和修改此文件。

##查看全局级别配置文件
$ git config --global  --list
##新增
$ git config --global --add core.autocrlf false
##git config --global 需要修改的参数 需要修改的值
$ git config --global core.autocrlf false
##删除
git config --global --unset core.autocrlf false

3、本地级别配置文件:特定于当前Git仓库,位于.git/config。这个文件只影响该仓库的操作。

##查看本地级别配置文件
$ git config --local  --list
##新增
$ git config --local --add core.autocrlf false
##git config --local 需要修改的参数 需要修改的值
$ git config --local core.autocrlf false
##删除
git config --local --unset core.autocrlf false

二、config基本配置

1、首先要做的事情就是设置你的名字和邮箱地址:

$ git config --global user.name "user name"
$ git config --global user.email email@example.com

2、core.editor默认情况下,git 会调用你通过环境变量 $VISUAL 或 $EDITOR 设置的文本编辑器, 如果没有设置,默认则会调用 vi 来创建和编辑你的提交以及标签信息。 你可以用 core.editor 选项来修改默认的编辑器:

##设置了此代码后,现在,无论你定义了什么终端编辑器,Git 都会调用 Emacs 编辑信息
$ git config --global core.editor emacs

3、core.autocrlf 是否自动将换行符转换为操作系统标准的换行符(CRLF、LF 或 CR),或者在提交时从文件内容中删除这些换行符

当 core.autocrlf 设置为 true 时,Git 会做以下事情:
1.当检出代码(即从 Git 仓库中取出文件到工作区)时,Git 会将文本文件的换行符转换为当前操作系统的标准换行符。
2.当提交文件时,Git 会自动删除这些文件的换行符,将它们转换为LF(Unix风格)。

这种设置的主要目的是确保跨平台的兼容性。因为不同的操作系统使用不同的换行符标准(Windows使用CRLF,而Unix和Linux使用LF),通过自动转换,可以确保在任何平台上都可以正常检出和提交代码。但是,这种设置也有一些潜在的问题。例如,如果你在本地修改了文件并尝试提交,由于自动转换可能会导致你的修改丢失。为了避免这种情况,一些开发者会设置 core.autocrlf 为 false,这样 Git 就不会自动转换换行符。

4、core.fscache 它允许你控制文件系统缓存的行为,它可以缓存文件和目录的元数据,以便在多次访问相同的文件或目录时提高性能

core.fscache 设置为 true 时,Git 将使用文件系统缓存来存储文件和目录的元数据。这可以加速对文件和目录的访问,特别是在多次访问相同的文件或目录时。
默认情况下,Git 会自动启用文件系统缓存,但你可以通过设置 core.fscache 为 false 来禁用它。禁用文件系统缓存可能会稍微降低文件操作的速度,但在某些情况下,它可以提供更好的性能。

5、core.whitespace 设置或获取用于检测和报告空白错误的规则

当你设置 core.whitespace 选项时,你可以指定一个或多个规则来检查空白问题。Git 提供了几个预定义的规则,如 trailing-space、space-before-tab、tab-in-indent 等。你可以通过将规则名称作为参数传递给 core.whitespace 来启用这些规则。还可以使用 git diff --check 命令来手动检查当前工作区的空白问题。通过命令设置:
git config core.whitespace trailing-space space-before-tab
trailing-space:这个选项会查找每行结尾的空格,并将其视为错误。
space-before-tab:这个选项会查找每行开头的制表符前的空格字符,并将其视为错误。
tab-in-indent:这个选项会查找行的初始缩进部分中的制表符,并将其视为错误。

6、core.excludesfile:用于指定一个排除文件,其中包含要忽略的文件和目录的规则。这个配置选项允许用户自定义忽略文件和目录的规则,以便更好地管理仓库中的文件

要设置 core.excludesfile,可以使用 git config 命令。例如,要将排除文件设置为 ~/.gitignore,可以运行以下命令:
git config --global core.excludesfile '~/.gitignore'
这将设置一个全局的排除文件,其中包含要忽略的文件和目录的规则。这些规则将应用于所有的仓库。
除了全局设置外,也可以为单个仓库设置 core.excludesfile。例如,要在当前仓库中设置排除文件为 .gitignore 文件,可以运行以下命令:
git config core.excludesfile '.gitignore'
这将设置当前仓库的排除文件为 .gitignore 文件。在这个文件中,可以定义要忽略的文件和目录的规则。
使用 core.excludesfile 可以帮助用户更好地管理仓库中的文件,避免将不需要的文件提交到版本控制中。通过自定义忽略规则,用户可以确保只有重要的文件被跟踪和提交,从而提高代码管理和协作的效率。

7、core.fscache:用于启用或禁用文件系统缓存

如果设置为 true,core.fscache 将启用文件系统缓存。这将使用缓存来存储 Git 对象和数据的副本,以便更快地访问这些对象和数据。启用文件系统缓存可以提高克隆仓库、检出分支和执行其他一些操作的速度。
如果设置为 false,core.fscache 将禁用文件系统缓存。这将禁用缓存机制,并可能导致某些操作的速度变慢。
要启用或禁用文件系统缓存,可以使用以下命令:
git config --global core.fscache true
设置为 true 将启用文件系统缓存,设置为 false 将禁用文件系统缓存。

8、alias:常用的命令创建自定义的简短命令

例如,要将 git status 命令的别名设置为 s,可以运行以下命令:
git config --global alias.s 'status'
这将创建一个全局别名 s,等同于 git status 命令。现在,在终端中输入 git s 将执行 git status 命令。
要查看已设置的别名列表,可以使用以下命令:
git config --list | grep alias

9、color:控制Git是否使用颜色输出,以及颜色的设置方式

1、color.ui: 这个变量控制默认的颜色输出。将其设置为 true 将启用默认的颜色输出,设置为 false 将禁用颜色输出。
git config --global color.ui true
2、color.branch: 这个变量控制分支相关的颜色输出。将其设置为 true 将启用分支相关的颜色输出,设置为 false 将禁用颜色输出。
git config --global color.branch true
3、color.diff: 这个变量控制差异比较时的颜色输出。将其设置为 true 将启用差异比较时的颜色输出,设置为 false 将禁用颜色输出。
git config --global color.diff true
4、color.interactive: 这个变量控制交互式命令的颜色输出。将其设置为 true 将启用交互式命令的颜色输出,设置为 false 将禁用颜色输出。
git config --global color.interactive true
5、color.: 对于其他特定的 Git 命令,例如 color.status、color.grep 等,也可以设置相应的变量来控制它们的颜色输出。
git config --global color.status true
git config --global color.grep true
通过设置这些配置选项,你可以根据自己的偏好来启用或禁用 Git 中的颜色输出。如果你想完全禁用所有颜色输出,只需将 color.ui 设置为 false 即可。如果你想为特定命令启用颜色输出,只需相应地设置该命令的配置选项即可。

10、diff.tool:设置或获取用于显示差异的工具(如 vimdiff、diffuse 等)

默认情况下,Git 使用 diff 命令来显示差异。但是,你可以通过设置 diff.tool 选项来指定其他工具
git config --global diff.tool vimdiff
Vimdiff:
1、打开终端。
2、输入 git config --global diff.tool vimdiff 命令来设置 Vimdiff 为默认的差异查看工具。
3、输入 git difftool 命令来使用 Vimdiff 查看文件之间的差异。
KDiff3:
1、打开终端。
2、输入 git config --global merge.tool kdiff3 命令来设置 KDiff3 为默认的合并工具。
3、在需要进行合并操作时,输入 git mergetool 命令,KDiff3 将自动启动并显示文件之间的差异。
Meld:
1、打开终端。
2、输入 git config --global merge.tool meld 命令来设置 Meld 为默认的合并工具。
3、 在需要进行合并操作时,输入 git mergetool 命令,Meld 将自动启动并显示文件之间的差异。
需要注意的是,为了使用这些工具,需要先安装它们,并将它们的可执行文件路径添加到系统的环境变量中。这样 Git 才能成功启动这些工具。

11、diff.algorithm:设置或获取用于计算差异的算法(如 myers、 patience 等)

默认情况下,Git 使用 myers 算法来计算差异。该算法在大多数情况下都能提供较好的性能和准确性,但有时可能会产生较大的差异输出。
如果你希望使用其他算法来计算差异,可以通过设置 diff.algorithm 选项来实现:
git config --global diff.algorithm patience
Myers 算法:这是 Git 默认的 Diff 算法,由 Eugene W. Myers 在 1986 年发表。Myers 算法通过完全相同的行来实现匹配,但可能会有大量的空行和括号影响结果。
Patience 算法:这是 Myers 算法的改进,通过“少量的独特的行”做锚定,来更合适的标记代码段的移动。
Histogram 算法:这是 Patience 算法的改进,通过“少量的独特的行”做锚定,来更合适的标记代码段的移动。
需要注意的是,算法的选择可能会影响计算差异的速度和输出的差异大小。因此,在选择算法时,需要根据实际情况进行权衡和测试,以找到最适合当前工作流程的算法。

12、merge.tool:设置或获取用于合并的工具(如 vimdiff、kdiff3 等)

当你在进行合并操作时,如果发生冲突,Git 会自动启动指定的工具来帮助你解决冲突。
git config --global merge.tool kdiff3
kdiff3:KDiff3 是一个可视化的合并工具,它支持三种合并方式:自动合并、交互式合并和手动合并。在自动合并方式中,KDiff3 会尝试自动解决冲突,并在解决冲突后自动保存文件。在交互式合并方式中,KDiff3 会显示冲突的文件,并允许你手动选择要保留的代码行。在手动合并方式中,你需要手动编辑冲突文件,并删除冲突标记。
meld:Meld 也是一个可视化的合并工具,它支持两种合并方式:自动合并和手动合并。在自动合并方式中,Meld 会尝试自动解决冲突,并在解决冲突后自动保存文件。在手动合并方式中,Meld 会显示冲突的文件,并允许你手动编辑冲突区域。
vimdiff:Vimdiff 是 Vim 文本编辑器的合并模式。它支持两种合并方式:自动合并和手动合并。在自动合并方式中,Vimdiff 会尝试自动解决冲突,并在解决冲突后自动保存文件。在手动合并方式中,Vimdiff 会显示冲突的文件,并允许你手动编辑冲突区域。
kdiff3、meld 和 vimdiff 都支持自动合并和手动合并两种方式,但具体实现和界面有所不同。你可以根据自己的偏好选择适合你的合并工具。

13、merge.conflictstyle:设置或获取冲突解决中使用的冲突样式(如 diff3、merge 等)

merge:这是默认值,使用标准的冲突分界符(<<<<<<<, =======, >>>>>>>)对冲突内容进行标识。其中,两个文字块分别是本地的修改和他人的修改。
diff3:在这种风格下,冲突文件中会出现三个文字块,分别表示本地更改版本、共同的原始版本和他人的更改版本。在 ======= 标记之前,还会添加 ||||||| 标记和原始文本。


相关文章:

Git中config配置

文章目录 简介一、config级别二、config基本配置 简介 Git是一个开源的分布式版本控制系统&#xff0c;用于处理各种规模的项目版本管理。它由Linus Torvalds设计&#xff0c;主要用于Linux内核开发。Git的特点包括速度、简单的设计、对非线性开发模式的支持、完全的分布式能力…...

Java开发安全之:Unreleased Resource: Streams需确保流得到释放

Overview java 中的函数 getResponseBytes() 有时无法成功释放由 getInputStream() 函数分配的系统资源。 Details 程序可能无法成功释放某一项系统资源。 在这种情况下&#xff0c;在某些程序路径上&#xff0c;所分配的资源未释放。 资源泄露至少有两种常见的原因&#xf…...

【C++】文件操作

文件操作 一、文本文件&#xff08;一&#xff09;写文件读文件 二、二进制文件&#xff08;一&#xff09;写文件&#xff08;二&#xff09;读文件 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会被释放&#xff0c;通过文件可以将数据持久化&#xff…...

高效能方法 - 任务清单优先级

任务清单是有优先级的&#xff0c;首先要尽所能保证A级别的事项完成&#xff0c;或许不能估计B级或者C级&#xff0c;那这结果也是不错的。 博恩崔西在《吃掉那只青蛙》一书中指出&#xff1a;在你决定要做什么&#xff0c;并对其进行排序的时候&#xff0c;你首要解决那些最难…...

go 语言爬虫库goquery介绍

文章目录 爬虫介绍goquery介绍利用NewDocumentFromReader方法获取主页信息Document介绍通过查询获取文章信息css选择器介绍goquery中的选择器获取主页中的文章链接 爬取总结 爬虫介绍 爬虫&#xff0c;又称网页抓取、网络蜘蛛或网络爬虫&#xff0c;是一种自动浏览互联网并从网…...

解决 Navicat 在笔记本外接显示器分辨率自适应展示问题

前言 有时候我们使用自己的笔记本电脑会外接一个显示器&#xff0c;但是显示器的分辨率和笔记本又不一样&#xff0c;所以就会导致 Navicat 基于分辨率的问题变得字体很小。具体操作可点击这里&#xff1a; Navicat 分辨率调整...

网络安全产品之认识入侵检测系统

随着计算机网络技术的快速发展和网络攻击的不断增多&#xff0c;单纯的防火墙策略已经无法满足对安全高度敏感的部门的需要&#xff0c;网络的防卫必须采用一种纵深的、多样的手段。因此&#xff0c;入侵检测系统作为新一代安全保障技术&#xff0c;成为了传统安全防护措施的必…...

牛客周赛 Round 10 解题报告 | 珂学家 | 三分模板 + 计数DFS + 回文中心扩展

前言 整体评价 T2真是一个折磨人的小妖精&#xff0c;写了两版DFS&#xff0c;第二版计数DFS才过。T3是三分模板&#xff0c;感觉也可以求导数。T4的数据规模才n1000&#xff0c;因此中心扩展的 O ( n 2 ) O(n^2) O(n2)当仁不让。 A. 游游的最长稳定子数组 滑窗经典题 从某个…...

SpringBoot 更新业务场景下,如何区分null是清空属性值 还是null为vo属性默认值?

先看歧义现象 值为null 未传递此属性 所以此时如何区分null 时传递进来的的null&#xff0c;还是属性的默认值null? 引入方案 引入过滤器&#xff0c;中间截获requestBodyData并保存到HttpServletRequest&#xff0c;业务层从HttpServletRequest 获取到requestBodyData辅…...

【深度学习每日小知识】NLP 自然语言处理

自然语言处理 (NLP) 是人工智能 (AI) 的一个子领域&#xff0c;处理计算机和人类&#xff08;自然&#xff09;语言之间的交互。它涉及使用算法和统计模型使计算机能够理解、解释和生成人类语言。 NLP 是人工智能领域的重要工具&#xff0c;广泛应用于语言翻译、文本分类和聊天…...

一文理解Python选择语句

在编程领域中&#xff0c;条件判断和选择是非常基础而且重要的一个部分。Python 作为一种被广泛应用的编程语言&#xff0c;提供了多种选择语句来满足不同的条件判断需求。本文将深入探讨 Python 中的选择语句&#xff0c;包括 if 语句、elif 语句、else 语句、简写的条件表达式…...

MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句

目录 静态查询&#xff1a; 动态查询&#xff1a; 静态更新&#xff1a; 动态更新&#xff1a; 静态删除&#xff1a; 动态删除&#xff1a; 动态语句和静态语句在 MyBatis 中的作用如下&#xff1a; 静态查询&#xff1a; 静态查询是指在 SQL 语句中执行固定的查询操作…...

Flask用于生产环境

Flask是一个用Python编写的轻量级Web应用框架&#xff0c;可以用于开发和部署Web服务。要安装Flask&#xff0c;您需要以下步骤&#xff1a; - 安装Python和pip&#xff0c;如果您还没有的话。 - 创建一个虚拟环境&#xff0c;以便隔离您的Flask应用程序和其他Python项目。 - …...

程序员如何向上管理,升职加薪

向上管理 多向领导展示自己的工作量。 解决完问题&#xff0c;可以把领导拉到群里&#xff0c;不然你解决了问题&#xff0c;领导都不知道。 积极向领导汇报&#xff0c;及时反馈任务进度&#xff0c;反馈遇到的问题。 要学会表现自己&#xff0c;光说不干假把式&#xff0c;…...

Microsoft Word 删除空行

Microsoft Word 删除空行 1. 删除空行1.1. 替换1.2. 段落标记 References 1. 删除空行 1.1. 替换 1.2. 段落标记 特殊格式 -> 段落标记 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

基于一次应用卡死问题所做的前端性能评估与优化尝试

问题背景 在上个月&#xff0c;由于客户反馈客户端卡死现象但我们远程却难以复现此现象&#xff0c;于是我们组织了一次现场上门故障排查&#xff0c;并希望基于此次观察与优化&#xff0c;为客户端开发提供一些整体的优化升级。当然&#xff0c;在尝试过程中&#xff0c;也发…...

JVM(上)

目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化&#xff08;类加载过程中的初始化&#xff09; 三、类加载器分类 大致分两类&#xff1a; 细致分类&#xff1a; 四、双亲委派机制 五、打…...

【js】js 异步机制详解 Generator / Async / Promise

三种语法功能放在一起&#xff0c;是因为他们都有相似特点&#xff1a; 维护某种状态在未来恢复状态并执行 本文重点回答以下几个问题&#xff1a; 为什么 Generator 和 Async 函数的 代码执行流 都可以简化成树形结构&#xff1f;async 函数为什么返回一个 promise&#xf…...

【动态规划】【数学】【C++算法】805 数组的均值分割

作者推荐 【动态规划】【数学】【C算法】18赛车 本文涉及知识点 动态规划 数学 805 数组的均值分割 给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 数组 或者 B 数组中&#xff0c;使得 A 数组和 B 数组不为空&#xff0c;并且 average(A) average(B)…...

Django笔记(五):模型models

首 Django中的模型对应数据库中的一张表格。 定义模型 player.py from django.db import modelsclass Player(models.Model):idx models.IntegerField(uniqueTrue)def __str__(self):return str(self.id)每个模型需要继承models类&#xff0c;如上Player模型定义了一个整形…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...