1. git config简介
我们知道config是配置的意思,那么git config命令就是对git进行一些配置。而配置一般都是写在配置文件里面,那么git的配置文件在哪里呢?互动一下,先问下大家。
你们所知的git配置文件是放在哪里的?git有几个配置文件呢?是的,聪明的你,稍微查查资料就知道咯,git里面一共有3个配置文件,首先是:仓库级配置文
件:该文件位于当前仓库下,路径.git/,文件名为.gitconfig,这个配置中的设置只对当前所在仓库有效仓库级配置文件内容如下:
第二个是全局级配置文件:win7下面路径,在用户目录下,以个人的PC机为例,其路径为:C:\Users\zuoyu.ht,文件名为.gitconfig
全局级配置文件内容如下:
最后是系统级配置文件:本地git的安装目录下,以左御的git安装路径为例:D:\Program Files\Git\etc,文件名为:gitconfig,内容如下:
从三个图的对比中,我们可以发现,有些配置项的名称是一样的,比如“core”,在git中,每一项的配置名称又叫做“section”,
“section”下面的每一行对应着一个key和一个value。需要注意的是:系统级配置文件不同于另外两个配置文件,是因为他少了
一个点,因此用vim打开的时候,是没有高亮显示的。”core”这个section在每个配置文件中都有,那么它git最终会调用哪个配置
文件呢?这就要有一个先后顺序了。
2. 配置文件如何生效的
通俗的讲就是行内样式“<div style=“width:200px”>”,内嵌样式“<style type=“text/css”>div{width:200px}</style>”
和外部样式“<link rel=“stylesheet” href=“div.css”>”。这三种样式的权重是行内>内嵌>外部。类似的,对于git来说,配置文件
的权重是仓库>全局>系统。Git会使用这一系列的配置文件来存储你定义的偏好,它首先会查找/etc/gitconfig文件(系统级),该
文件含有对系统上所有用户及他们所拥有的仓库都生效的配置值。接下来Git会查找每个用户的~/.gitconfig文件(全局级)。最后
Git会查找由用户定义的各个库中Git目录下的配置文件.git/config(仓库级),该文件中的值只对当前所属仓库有效。以上阐述的三
层配置从一般到特殊层层推进,如果定义的值有冲突,以后面层中定义的为准,例如:.git/config和/etc/gitconfig的较量中,
.git/config取得了胜利。虽然你也可以直接手动编辑这些配置文件,但是运行git config命令将会来得简单些。下面我们就来看看如
何利用git config命令来编辑配置各个级别的文件。
3. 用git config命令查看配置文件
命令参数 –list, 简写 -l
格式:git config [–local|–global|–system] -l
查看仓库级的config,即.git/.config,命令:git config –local -l
查看全局级的config,即C:\Users\zuoyu.ht\.gitconfig,命令:git config –global -l
查看系统级的config,即D:\Program Files\Git\etc\gitconfig,命令:git config –system -l
查看当前生效的配置,命令:git config -l,这个时候会显示最终三个配置文件计算后的配置信息,如下图:
4. 使用git config命令编辑配置文件
编辑的英文单词是什么,没错,edit
命令参数 –edit, 简写 -e
格式:git config [–local|–global|–system] -e
查看仓库级的config,即.git/.config,命令:git config –local -e,与–list参数不同的是,git config -e默认是编辑仓库级的配置文件。
查看全局级的config,即C:\Users\zuoyu.ht\.gitconfig,命令:git config –global -e
查看系统级的config,即D:\Program Files\Git\etc\gitconfig,命令:git config –system -e
执行这个命令的时候,git会用配置文件中设定的编辑器打开配置文件。
5. 增加一个配置项
参数 –add
格式: git config [–local|–global|–system] –add section.key value(默认是添加在local配置中)
注意add后面的section,key,value一项都不能少,否则添加失败。比如我们执行:git config –add cat.name tom
然后查看local中的配置:
注意增加一项配置而不赋值 git config –add cat.age,或者单单增加一个section,git config –add cat1,不会成功。
6.获取一个配置项
有时候,我们并不需要查看所有配置的值,而是查看某个配置项的值,怎么做呢?
命令参数 –get
格式:git config [–local|–global|–system] –get section.key(默认是获取local配置中内容)
我们先往global配置中写入一个cat.name=Tomcat的配置项,再使用git config –get cat.name看看得到的是什么
结果就是local中的cat.name=Tom,因此git config –get section.key 等价于git config –local –get section.key
如果获取一个section不存在的key值,不会返回任何值
如果获取一个不存在的section的key值,则会报错
7.删除一个配置项
命令参数 –unset
格式:git config [–local|–global|–system] –unset section.key
相信有了前两个命令的使用基础,大家举一反三就知道改怎么用了,来,我们试试删除local配置中的cat.name
8.如果记不住上面的命令或者需要批量修改和添加时,可直接打开对应的配置文件进行修改。
比如拷贝下面的别名设置到全局级配置文件中:
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
转载自:http://blog.csdn.net/zxncvb/article/details/22153019
- Git 本地操作
版权声明:数学是研究世界的本质,自然科学是研究上帝的意志,而计算机则是揣摩屌丝人类的意志 目录(?)[-] 命令 git config 增删改查 init clone add commit sta ...
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...
- 史上最详细git教程
题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
随机推荐
- 登陆+注册(三层+sql语句)
啰嗦:今天面试,遇到这个上级测试,很容易的,因为一个错误,居然最后没做出来,心累 回到家,1小时做完,我特么还加了密,我还验证,可是上天不给我一次重来的机会啊 很垃圾的,小白可以看看,大神可以轻喷 首 ...
- Linux资源监控(Nmon)
1.下载nmon_linux_14g.tar.gz 2.解压nmon_linux_14g.tar.gz #tar -zxvf nmon_linux_14g.tar.gz 3. 为nmon_x86_64 ...
- xargs的原理剖析及用法详解
转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/5925923.html 学习这个xargs花了很长时间,在网上翻了很久也查了很多书关于xargs的介绍,都只 ...
- Res_Orders_01
一.燃尽图展示 二.项目进展 1.讨论选题内容 2.确定项目的版本(Web版) 3.讨论能达到的效果和内容 4.确定编程方面的难点 5.开始制作大概的框架 三.遇到问题 1.不知道怎么部署能达到最好的 ...
- bootstrap 3 with IE8 compatibility
12栅格布局在IE8下不起作用. 下载并引用html5shiv.js和respond.js 参考: 1.http://nextflow.in.th/en/keep-your-responsive-we ...
- 用原生js写碰撞变色效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- sort详解2
linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...
- GridView控件RowDataBound事件中获取列字段途径
今天不知道怎么回事怎么也找不到gridview列中的控件,关键是其为编辑时隐藏域中的控件,取值就很成问题了,网上搜了很到,找到这个比较经典的东东了,可能大家都知道,但很少对比整理到一起,有多种方法可以 ...
- funny_python 01 import antigravity
在Python里面import antigravity 会发现另一个小彩蛋 Tada~ 其实就是打开了xkcd的一个python主题漫画 鼠标停留在图片上,还会看到标题: "I wrote ...
- [题解]codevs1001 舒适的路线
h3 { font-family: Consolas; color: #339966 } .math { font-family: Consolas; color: gray } 题目描述 Descr ...