1 配置文件
1.1 用户级别
~/.gitconfig
1.2 仓库级别
.git/config
2 core.ignorecase
如果是true的话,会导致,在.gitignore文件中设置的是小写的“*.s”,但是大写的"*.S"也被忽略了。所以,记得设置成false,因为不区分大小写的文件系统毕竟很少。
由于设置成了true,导致我的.S文件没有上传到库中,足足花费了我接近3个小时解决这个问题。
3 git config参考文档
https://git-scm.com/docs/git-config/
4 git config主要的配置选项
branch.<name>.remote
branch.<name>.merge
用来配置名字为name的branch的remote和merge。
与之对应的是.git/config文件中的
[branch "master"]
remote = origin
merge = refs/heads/master
这个配置的意思是,当git位于master分支时,remote仓库为origin,当git pull的时候没有指定远程的分支的时候,默认将remot的master分支merge到本地分支。
也可以使用命令行配置如下:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
5 关于refs/heads/master和refs/for/master
这个是gerrit的规则,refs/for/*的提交要经过code review才可以提交,refs/heads/*不需要经过code review就可以提交。
6 git refs是个什么东西,它和branch之间是一个什么样的关系
git refs可以理解为本次提交的一个地址,它本质上是一个sha-1,即对本次提交的文本求了一个sha-1的值,通过该值检索到该提交的文本对象。
而git branch是一连串的提交构成的,但是可以用最后一次提交的refs来表示一个branch。