git config的使用
来源:互联网 发布:培训出来的程序员 编辑:程序博客网 时间:2024/04/30 02:09
1.gitconfig的种类
当我们安装好git软件包,或者着手在一个新的机子上使用git的时候,我们首先需要进行一些基本的配置工作,这个就要用到gitconfig。
gitconfig是用于进行一些配置设置,有三种不同的方式来指定这些配置适用的范围:
1)git config针对一个git仓库
2)git config --global针对一个用户
3)sudo git config --system针对一个系统,因为是针对整个系统的,所以必须使用sudo
1)第一种默认当前目录是一个git仓库,假设我们有一个仓库叫git_test,它所修改配置保存在git_test/.git/config文件,如果当前目录不是一个有效的git仓库,在执行一些命令时会报错,例如:
$gitconfig -e
fatal:not in a git directory
我们来看一个简单的例子,一般我们clone一个git仓库,默认都是一个工作目录,那么对应的配置变量bare =false。来看一个很简单的仓库的config文件,catgit_test/.git/config
[core]
repositoryformatversion= 0
filemode= true
bare= false
logallrefupdates= true
如果我们想修改bare为false,最简单的办法就是直接用vim打开git_test/.git/config文件进行修改,另一种办法就是使用gitconfig来修改
$gitconfig core.bare true
$cat.git/config
[core]
repositoryformatversion= 0
filemode= true
bare= true
logallrefupdates= true
命令的格式就是git config<section>.<key><value>。需要注意的是我们没有加--system和--global,那么这个修改只针对于当前git仓库,其它目录的仓库不受影响。
2)第2种是适用于当前用户,也就是说只要是这个用户操作任何git仓库,那么这个配置都会生效,这种配置保存在~/.gitconfig当中,那什么样的配置需要放到用户的配置文件里呢,git里一个最为重要的信息就是提交者的个人信息,包括提交者的名字,还有邮箱。当我们在用git提交代码前,这个是必须要设置的。显而易见,这个配置需要放在用户一级的配置文件里。
$gitconfig --global user.name "I Love You"
$gitconfig --global user.email "i.love.you@gmail.com"
$cat~/.gitconfig
[user]
name= I Love You
email= i.love.you@gmail.com
3)第3种是适用于一个系统中所有的用户,也就是说这里的配置对所有用户都生效,那什么样的配置需要放在这里呢,比如我们在执行gitcommit会弹出一个默认的编辑器,一般是vim,那作为系统的管理员,可以将vim设置为所有用户默认使用的编辑器,我们来看设置的过程
$sudogit config --system core.editor vim
$cat/etc/gitconfig
[core]
editor= vim
我们可以看到它修改的是全局的配置文件/etc/gitconfig。
2.总结:
现在我们就会有一个问题,当我们在不同的配置文件中,对同一个变量进行了设置,最终哪个会生效呢?或者说谁到底覆盖谁呢?先来排除一种情况,就是分属不同的两个git仓库的config文件中的配置是互不影响的,这个很好理解。那么要讨论是如果一个配置出即出现在/etc/gitconfig,~/.gitconfig以及git_test/.git/config这三个位置时,我们又恰巧要操作git仓库git_test,那么生效的优先级顺序是(1)git_test/.git/config,(2)~/.gitconfig,(3)/etc/gitconfig,也就是说如果同一个配置同时出现在三个文件中时,(1)有效。
那么为什么会有这样的情况发生呢,比如我们前面的有关编辑器设置,系统管理员为所有用户设置了默认的编辑器是vim,但是并不是每个用户都习惯用vim,有些人更青睐于功能更炫的emacs(Ihateit,我刚刚接触linux的时候上来就是用的emacs,让我这个新手不知所措,但是后来使了vim,觉得更容易上手,而且用的时间长了,对vim了解更深,发现它功能一样强大,而且它可以算是类unix系统中默认的编辑器),言归正传,如果你想用emacs,你就可以将这个配置加入到你的~/.gitconfig中,这样它就会覆盖系统/etc/gitconfig的配置,当然这只针对于你,其他用户如果不设置还是会用vim。
$gitconfig --global core.editor emacs
$cat~/.gitconfig
[core]
editor= emacs
对于gitconfig只介绍到这,其实除了以上讲解的部分,它还有很多功能。本文中主要是针对介绍不同范围内设置的配置的有效范围,了解它之后,当以后需要对git进行环境配置时,你就明白根据当前配置的性质,明白是该放在git_test/.git/config,还是在~/.gitconfig,又或是在/etc/gitconfig中,作为一个资深的版本管理者来说,必须要了解以上的区别。
- git config的使用
- git config命令使用
- git config命令使用
- git config命令使用
- git config 使用讲解
- git config命令使用
- git config命令使用
- 关于git的config
- mac使用git,repo的账号错误时,.git/config文件的配置
- git config
- git config
- git config
- git config
- git config
- git config
- git config
- git config
- git config
- 中国国家气象局天气预报信息接口
- linux下history(历史)命令用法详解
- 【实验一】计算机是怎样工作的?
- <location allowOverride="false"> ??
- 1001. A+B Format (20)
- git config的使用
- android:configChanges属性
- iOS开发之在地图上绘制出你运动的轨迹
- twisted 多线程并发的相关讨论
- mac 安装gcc make
- 线程
- 看过去
- Hadoop学习笔记之在Eclipse中远程调试Hadoop
- Android : 线程的结束,挂起和恢复