git配置文件读取顺序
作者:zhanhailiang 日期:2014-11-03
git包括三个配置文件:
- /etc/gitconfig 文件:系统中对全部用户都普遍适用的配置。
若使用git config 时用' –system'选项,读写的就是这个文件。
- ~/.gitconfig 文件:用户文件夹下的配置文件仅仅适用于该用户。若使用git config 时用' –global'选项,读写的就是这个文件。
- 当前项目的git 文件夹中的配置文件(也就是工作文件夹中的.git/config 文件):这里的配置只针对当前项目有效。
每个级别的配置都会覆盖上层的同样配置,所以.git/config 里的配置会覆盖/etc/gitconfig 中的同名变量。
能够通过git config –list查看当前配置:
[root@~/wade/git/node-lessons]# git config --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=https://github.com/alsotang/node-lessons.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
我们也能够通过strace来检验git配置文件的载入顺序:
[root@~/wade/git/node-lessons]# strace git config --list
execve("/usr/bin/git", ["git", "config", "--list"], [/* 27 vars */]) = 0
brk(0) = 0x151a000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66c000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=30968, ...}) = 0
mmap(NULL, 30968, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f82cd664000
close(3) = 0
open("/lib64/libz.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 !\340\3611\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=91096, ...}) = 0
mmap(0x31f1e00000, 2183696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x31f1e00000
mprotect(0x31f1e15000, 2093056, PROT_NONE) = 0
mmap(0x31f2014000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x31f2014000
close(3) = 0
open("/lib64/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340] \3611\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145896, ...}) = 0
mmap(0x31f1200000, 2212848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x31f1200000
mprotect(0x31f1217000, 2097152, PROT_NONE) = 0
mmap(0x31f1417000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x31f1417000
mmap(0x31f1419000, 13296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x31f1419000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\356\341\3601\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1926680, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd663000
mmap(0x31f0e00000, 3750152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x31f0e00000
mprotect(0x31f0f8a000, 2097152, PROT_NONE) = 0
mmap(0x31f118a000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18a000) = 0x31f118a000
mmap(0x31f118f000, 18696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x31f118f000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd662000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd661000
arch_prctl(ARCH_SET_FS, 0x7f82cd662700) = 0
mprotect(0x31f2014000, 4096, PROT_READ) = 0
mprotect(0x31f1417000, 4096, PROT_READ) = 0
mprotect(0x31f118a000, 16384, PROT_READ) = 0
mprotect(0x31f0c1f000, 4096, PROT_READ) = 0
munmap(0x7f82cd664000, 30968) = 0
set_tid_address(0x7f82cd6629d0) = 25648
set_robust_list(0x7f82cd6629e0, 0x18) = 0
futex(0x7fffa73c199c, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7fffa73c199c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7f82cd662700) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x31f1205c60, [], SA_RESTORER|SA_SIGINFO, 0x31f120f710}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x31f1205cf0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x31f120f710}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
brk(0) = 0x151a000
brk(0x153b000) = 0x153b000
getcwd("/root/wade/git/node-lessons", 4096) = 28
stat(".git", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
access(".git/objects", X_OK) = 0
access(".git/refs", X_OK) = 0
lstat(".git/HEAD", {st_mode=S_IFREG|0644, st_size=23, ...}) = 0
open(".git/HEAD", O_RDONLY) = 3
read(3, "ref: refs/heads/master\n", 255) = 23
read(3, "", 232) = 0
close(3) = 0
access("/etc/gitconfig", R_OK) = 0
open("/etc/gitconfig", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66b000
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f82cd66b000, 4096) = 0
access("/root/.gitconfig", R_OK) = 0
open("/root/.gitconfig", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66b000
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f82cd66b000, 4096) = 0
stat(".git", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
access(".git/config", R_OK) = 0
open(".git/config", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=269, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66b000
read(3, "[core]\n\trepositoryformatversion "..., 4096) = 269
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f82cd66b000, 4096) = 0
access("/etc/gitconfig", R_OK) = 0
open("/etc/gitconfig", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66b000
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f82cd66b000, 4096) = 0
access("/root/.gitconfig", R_OK) = 0
open("/root/.gitconfig", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66b000
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f82cd66b000, 4096) = 0
access(".git/config", R_OK) = 0
open(".git/config", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=269, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66b000
read(3, "[core]\n\trepositoryformatversion "..., 4096) = 269
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82cd66a000
write(1, "core.repositoryformatversion=0\n", 31core.repositoryformatversion=0
) = 31
write(1, "core.filemode=true\n", 19core.filemode=true
) = 19
write(1, "core.bare=false\n", 16core.bare=false
) = 16
write(1, "core.logallrefupdates=true\n", 27core.logallrefupdates=true
) = 27
write(1, "remote.origin.fetch=+refs/heads/"..., 56remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
) = 56
write(1, "remote.origin.url=https://github"..., 63remote.origin.url=https://github.com/alsotang/node-lessons.git
) = 63
write(1, "branch.master.remote=origin\n", 28branch.master.remote=origin
) = 28
write(1, "branch.master.merge=refs/heads/m"..., 38branch.master.merge=refs/heads/master
) = 38
read(3, "", 4096) = 0
close(3) = 0
munmap(0x7f82cd66b000, 4096) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
close(1) = 0
munmap(0x7f82cd66a000, 4096) = 0
exit_group(0) = ?
由此能够git配置文件载入顺序为/etc/gitconfig → ~/.gitconfig → .git/config。最后载入的同名配置会覆盖前者载入的配置。
git配置文件读取顺序的更多相关文章
- Mysql之 配置文件读取顺序
On Unix, Linux and Mac OS X, MySQL programs read startup options from the following files, in the sp ...
- Mysql配置文件读取顺序
On Unix, Linux and Mac OS X, MySQL programs read startup options from the following files, in the sp ...
- springcloud的配置文件的读取顺序
SpringBoot默认支持properties和YAML两种格式的配置文件.前者格式简单,但是只支持键值对.如果需要表达列表,最好使用YAML格式.SpringBoot支持自动加载约定名称的配置文件 ...
- MySQL读取配置文件的顺序、启动方式、启动原理
一.MySQL读取配置文件的顺序 读取顺序:/etc/my.cnf > /etc/mysql/my.cnf > /usr/etc/my.cnf > ~/.my.cnf 命令验证:[r ...
- SpringBoot 配置文件存放位置及读取顺序
SpringBoot配置文件可以使用yml格式和properties格式 分别的默认命名为:application.yml.application.properties 存放目录 SpringBoot ...
- Linux 登陆配置读取顺序
Linux用户在登陆到Linux服务器时,一些登陆的提示欢迎信息,以及特定的环境配置等等都按预先设定好的配置来生效.Linux中的这个shell环境会读取很多不同的配置文件来达成上述目的,同时还有登陆 ...
- Linux 下 Bash配置文件读取
Linux安装时可能要修改的配置文件:/etc/profile./etc/bashrc(ubuntu没有这个文件,对应地,其有/etc/bash.bashrc文件.我用的是ubuntu系统,所以下面将 ...
- cocos2d-x开发: 一切应该从配置文件读取开始
想要做一款完整的游戏,应该从配置文件读取开始.cocos2d-x本身提供了UserDefault来操作xml格式的配置文件,准确的说配置这模块引擎开发者已经考虑到了.但是xml格式包含大量无关的格式信 ...
- git配置文件—— .editorconfig
参考文档 editorconfig官方文档 github/editorconfig/wiki文档 一 概述 editorConfig不是什么软件,而是一个名称为.editorconfig的自定义文件. ...
随机推荐
- linux下启动tomcat出现“This file is needed to run this program ”
使用sh startup.sh启动tomcat 出现This file is needed to run this program 原因.sh文件都不是可执行文件,于是找到命令: chmod +x * ...
- 《C++反汇编与逆向分析技术揭秘》之11——虚函数
虚函数的机制 当类中定义有虚函数时,编译器会将该类中所有虚函数的首地址保存在一张地址表中,这张表被称为虚函数地址表.编译器还会在类中添加一个虚表指针. 举例: CVirtual类的构造函数中没有进行任 ...
- 7)Linux程序设计入门--网络编程
)Linux程序设计入门--网络编程 Linux系统的一个主要特点是他的网络功能非常强大.随着网络的日益普及,基于网络的 应用也将越来越多. 在这个网络时代,掌握了Linux的网络编程技术,将令每一个 ...
- Hadoop HDFS分布式文件系统设计要点与架构(转摘)
Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Ha ...
- [置顶] OpenJDK源码研究笔记(九)-可恨却又可亲的的异常(NullPointerException)
可恨的异常 程序开发过程中,最讨厌异常了. 异常代表着程序出了问题,一旦出现,控制台会出现一屏又一屏的堆栈错误信息. 看着就让人心烦. 对于一个新人来讲,遇到异常经常会压力大,手忙脚乱,心生畏惧. 可 ...
- 【云计算】Docker 镜像如何设置语言环境?bash: warning: setlocale: LC_ALL: cannot change locale (en_US)
解决方案: # set default language environment RUN locale-gen en_US.UTF- \ && dpkg-reconfigure loc ...
- windows8中visual studio 2010 编译boost1.57库
参考: http://blog.csdn.net/a06062125/article/details/7773976 http://www.cppfans.org/1317.html http://w ...
- eclipse解决editor does not contain a main type的方法
转自:http://blog.csdn.net/huazhangena/article/details/7349044 写在前面的话:我的也出现这个问题,但是解决方法和转发的内容不太一样,原理一样,我 ...
- C++ 声明与引用
任何一个技术或者知识点,都是为了解决某个问题.也就是都有他的使用场景,或者说为什么搞出这种技术. 1.解决的问题:现实生活中的例子,要使用一个工具,必要把工具放在这里,或者说我有这个工具.工具只能放在 ...
- C#应用视频教程2.2 OPENGL虚拟仿真介绍
三维在理解了如何绘制2D元素之后,我们尝试绘制3D元素. 其实多个三角形也能够成四面体,多个长方形也能够成六面体,所以绘制3D元素的时候,只要顶点数量匹配就行了 这里我们尤其注意,我把绘制之前的三 ...