Git中config配置_git config-程序员宅基地

技术标签: git  


简介

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 protected]

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:在这种风格下,冲突文件中会出现三个文字块,分别表示本地更改版本、共同的原始版本和他人的更改版本。在 ======= 标记之前,还会添加 ||||||| 标记和原始文本。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_18402475/article/details/135650714

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法