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

智能推荐

Scrum敏捷转型培训公司有哪些?-程序员宅基地

文章浏览阅读463次,点赞6次,收藏10次。Scrum中文网(Scrum.CN)是全球第一个Scrum中文网站,是中国最早的Scrum和敏捷的布道者、教育及推广机构,也是国际Scrum联盟(Scrum Alliance)官方授权教育机构和Scrum.org中国唯一授权合作伙伴,SAFe大规模敏捷SAI中国授权合作伙伴。它除了是敏捷工具之外,它也提供敏捷认证课程,比如:CSM,CSPO,CSD,A-CSM、PSM,PSPO等认证课程,大规模敏捷SAFe和LeSS等认证培训课程。针对敏捷转型培训,有一些知名的培训公司提供专业的敏捷培训课程和认证。

python os.environ windows_python 获取系统环境变量 os.environ and os.putenv-程序员宅基地

文章浏览阅读478次。从一段code说起 “if "BATCH_CONFIG_INI" in os.environ:” 判断环境变量的值有没有定义如果定义的话就去环境变量的值,否则就取当前目录下的config.ini文件。if "BATCH_CONFIG_INI" in os.environ:print "Using custom ini file!"self.inifile = os.environ["BATCH_C..._python基于os.environ从windows获取环境变量

jsp执行过程详解-程序员宅基地

文章浏览阅读222次。详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt2371、jsp引擎JSP引擎实际上要把JSP标签、JSP页中的Java代码甚至连同静态HTML内容都转换为大块的Java代码。这些代码块被JSP引擎组织到用户看不到的Java servlet中去,然后servlet自动把JVM(java虚拟机)编译成Java字节码。这样,当..._jsp 解释执行

【附源码】计算机毕业设计java学生学科竞赛管理系统设计与实现_学科竞赛管理系统开发与应用-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏20次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。_学科竞赛管理系统开发与应用

matlab错误使用 矩阵维度必须一致,错误使用 + 矩阵维度必须一致-程序员宅基地

文章浏览阅读1.5k次。function dx=shuangzhou(t,x,Tmh,Tmp,Mh,Ihx,Ihy,Ihz,Ihxy,Ihxz,Ihyz,Mp,Ipx,Ipy,...Ipz,Ipxy,Ipxz,Ipyz,g,xh,yh,zh,xp,yp,zp,xhp,yhp,zhp,xch,ych,zch,u,v,w,...p,q,r,theta,varphi,Ch,Cp,Kp)A=p*cos(x(1))*cos(x(2..._错误使用+

Java 异常:捕获异常_java子异常与父异常如何补获-程序员宅基地

文章浏览阅读611次。语法结构 1.捕获异常语法结构: 红框:使用try{}块来抛出异常蓝框:使用try{}块来抛出异常橙框:由于对循环体中的异常进行了捕获处理,所以该行代码可以执行 2.try…catch…finally异常处理结构中,try语句块是必须的, catch和finally语句块至少出现一个。 3.注意:如果try语句块包含的是检查时异常,则在没有..._java子异常与父异常如何补获

随便推点

OpenCV从入门到精通实战(二)——文档OCR识别(tesseract)-程序员宅基地

文章浏览阅读1.4k次,点赞20次,收藏15次。对四个坐标点进行排序,确定文档的四个角(左上,右上,右下,左下)。使用欧氏距离来计算和排序点。# 一共4个坐标点# 按顺序找到对应坐标0123分别是 左上,右上,右下,左下# 计算左上,右下# 计算右上和左下此函数用于排序提供的四个点,确保点的顺序为左上、右上、右下和左下,这对后续的透视变换非常重要。使用cv2.getPerspectiveTransform和cv2.warpPerspective来计算变换矩阵并应用# 获取输入坐标点# 计算输入的w和h值# 变换后对应坐标位置。

详解avcodec_receive_packet 11_avcodec_receive_packet eagain-程序员宅基地

文章浏览阅读1.3k次,点赞38次,收藏21次。cCopy codeavcodec_receive_packet函数用于从编码器上下文avctx中接收输出的数据包,保存在AVPacket结构体avpkt中。该函数通常与avcodec_send_frame函数配合使用,用于编码器的数据输入和输出。在本文中,我们详细介绍了avcodec_receive_packet函数的用法和参数,以及其在音视频处理中的作用。通过合理使用avcodec_receive_packet函数,我们可以从编码器中接收到输出的数据包,进一步处理和使用。_avcodec_receive_packet eagain

OpenGL SuperBible 7th源码编译记录_superbible7-media github-程序员宅基地

文章浏览阅读765次。OpenGL SuperBible 7th 源码编译_superbible7-media github

Wireshark简单使用-程序员宅基地

文章浏览阅读794次,点赞14次,收藏18次。wireshark下载、安装、使用教程

MXNet 粗糙的使用指南_iou loss mxnet-程序员宅基地

文章浏览阅读288次。MXNet 粗糙的使用指南写于2020年3月24日,最新的CUDA版本为10.2MXNet简介MXNet是一个(跟TF与Torch相比特别小众的)多平台神经网络框架。优点:灵活,多平台,可移植性强。工业界常用框架。缺点:复杂,难以入门,基本没有教材。只能依靠代码来学习代码。框架介绍MXNet现在存在两种界面:symbol与gluon。Symbol的设计思路与T..._iou loss mxnet

iOS对ipa包进行代码混淆《二》 ---代码混淆_ipa包混淆-程序员宅基地

文章浏览阅读1.3k次。接上一篇文章ipa包砸壳,接下来讲一下代码混淆。混淆代码,我们需要生成两个文件confuse.sh和func.list。confuse.sh是一个脚本文件,里边定义了混淆的一些算法,以及需要混淆方法的路径。func.list是我们列举的一些需要混淆的方法。当然系统的方法不能混淆,不然一些库文件方法没办法正确加载。1、首先,终端cd到文件目录,并且利用指令touch生成这两个文件touch confuse.shtouch func.list不出意外,文件目录里已经有这两个文件了。_ipa包混淆