最近遇到个很烦人的现象,使用git status 命令会显示大批量的文件发生了变动,使用git diff 发现这些文件的权限发生了改变(内容并没有改变)。最后发现可以使用 git config core.fileMode false 来把git 检查文件权限的功能给关掉。所以趁此机会来学习下git config,将我们的git 环境配置的更符合我们的习惯。
一般常见的配置文件有三种:a. 系统环境下的配置文件;/etc/gitconfig (优先级最低)
b.用户家目录下的配置文件;~/.gitconfig (优先级高)
c.git 仓库目录下的配置文件;.git/config (优先级最高)
例如 colour.ui 这类词语,我们成为git config 的关键词。
1. 控制 git config 生效范围的参数
git config --global :无论读写关键词时,加上--global 参数读写的为 b
git config --system:无论读写变量时,加上--system 参数读写的为 a
git config :如果不加参数,读写变量时都是默认当前的 c 文件。
git config --file: 指定读写变量文件。
2. 获取指定git 变量的值
git config --get keywords :指定不存在的key会返回1,指定key 存在多个值时返回2
--get-all keywords :不会返回错误码
3. 取消设置的变量的值
git conifg --unset : 把配置文件中变量的值删除
--unset : 所有配置文件中有关变量的值全部删除
4. 列出配置文件中所定义的变量的值
git config -l / --list
5. 变量值的含义
core.fileMode :检查文件权限的可执行位是否变动 ture则检查,false 忽略
core.autocrlf :这个变量对于在windows上面开发,但是提交在linux上的同学来说是很有用的。
如果这个变量被设置成ture的话,读写文件的时候将会根据文件系统来进行结束符
的相互转换,比如CRLF to LF ,或者 LF to CRLF .相信在跨平台使用git 时候经常遇到。
未完,待续~