当前位置:   article > 正文

linux配置文件参数解析,Git配置文件的常用参数解析

expected git repo version <= 0, found 1

我们有时候在多平台开发代码或者批量修改了文件夹的权限时,使用git status命令你很有可能会看到一大片的文件变更记录。其实不用担心,这些只是权限变更的文件也会被显示出来而已。如果你的工程目录不用考虑文件的权限,那么我们可以关闭这个特性:

git config core.filemode false

今天我们介绍下git常用的一些配置参数。

git配置文件

当我们初始化或者clone一个git仓库的时候,会自动生成.git的目录,默认隐藏,但我们依然可以查看其文件,其中有一个config的文件是基础的配置文件:

$ cat .git/config

[core]

# 用于未来能够兼容git版本,决定怎么处理git命令和文件的

repositoryformatversion = 0

# 是否提供文件权限的diff

filemode = true

# 决定当前仓库是中心仓库还是开发库

bare = false

# 记录所有的ref更新:决定变更ref时,会不会被记录在`$GIT_DIR/logs/`目录下

logallrefupdates = true

[remote "origin"]

fetch = +refs/heads/*:refs/remotes/origin/*

url = ssh://zhaoshuaiqiang@git.com:8235/reposity

[branch "master"]

remote = origin

merge = refs/heads/master

repositoryformatversion 仓库版本

现在发布的版本号都是0,但这个属性是为了未来的兼容性,当开发者认为有新的特性需要加入的时候,可以将这个版本号改为1,此时,新的Git版本可以正确执行功能,而老的版本会出现报错:

"Expected git repo version <= 0, found 1. Please upgrade Git"

filemode 文件权限

# diff时考虑文件权限为true,不考虑为false

core.filemode = true | false

我们通过这个参数来决定是否会diff文件的权限,如果是源代码,可以关闭这个选项,如果是脚本、二进制程序等需要权限认证之类的还是要开启该参数的:

git config core.filemode false

更改完成后再cat下.git/config就会发现该参数变了。

bare 裸仓库

我们可以使用git init来将我们的目录转换为一个Git本地仓库或者初始化为一个新仓库。在初始化的时候我们可以加上--bare参数来决定是否创建一个裸仓库。

裸仓库一般指的是远端的中心仓库,可以被clone和push更新,但不包含工作区,因此不能执行常规的git命令,也不能进行直接的提交和变更。而普通仓库却正好相反,用于我们常规协作开发时的修改和提交。

# 裸仓库为true,普通仓库为false

core.bare = true | false

logallrefupdates 记录引用更新

core.logallupdates = true | false | always

当值为true时,会将所有引用(ref)的更新记录到$GIT_DIR/logs/中,包括更新的编号、日期和原因等内容。的值根据分支的不同为refs/heads/ 或 refs/remotes/等。

当值为always时,的值为refs/reflog。

当仓库为裸仓库时,值为false。

总结

我们可以通过文档来了解所有的参数,这里我们只需要了解bare和filemode两个即可,同时filemode可以通过命令来修改。

参考资料

https://stackoverflow.com/que...

git tips: 设置filemode:https://www.jianshu.com/p/3b0...

Git 本地仓库和裸仓库:https://segmentfault.com/a/11...

Git文档:https://git-scm.com/docs/git-...

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号