[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
autocrlf = false
safecrlf = false
[remote “origin”]
url = git@gitlab.synaptics.com:cordless/CMBS_Lite.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch “master”]
remote = origin
merge = refs/heads/master
[branch “_CL_2.01”]
remote = origin
merge = refs/heads/B_CL_2.01
忽略文件夹权限
filemode = false
不进行自动换行处理
autocrlf = false
safecrlf = false
命令行操作
查看filemode选项
git config –get core.filemode
或
git config core.filemode
设置filemode选项
git config core.filemode true
以下转自git: 行尾crlf换行符\n与\r\n处理,文件属性
git config –global core.autocrlf true // 表示自动更换crlf,windows下如果checkout是\n,则自动换为\r\n,在提交时在自动换回\n
git config –global core.autocrlf input // 自动把\r\n换为\n
git config –global core.autocrlf false // 就是不作处理
如果已经产生了\r\n,merge时产生问题,可以设置
git config merge.renormalize true // merge时忽略行尾对比
如果只需要执行一次merge可以是用命令
git merge -s recursive -X ignore-space-at-eol origin/master
还可以设置crlf安全检查
git config –global core.safecrlf true // 禁止提交混合\n和\r\n的文件
git config –global core.safecrlf false // 允许提交
git config –global core.safecrlf warn // 提交时产生警告
如果经常产生文件属性变更的情况,可以设置
git config –global core.filemode false
以下转自git中忽略文件权限或文件拥有者的改变
在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突。明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分。下面笔者自己做了个简单的例子来演示这种情况。
1、修改版本库的文件的权限,然后使用diff查看下改变。
$ chmod 777 pack.php
$ git diff pack.php
git文件权限修改示例
可以看到git把文件权限也列入了版本管理。
2、在另外一个地方clone这个版本库,修改pack.php文件,然后提交。
3、在原版本库下面更新内容。
$ git pull
git文件权限修改引起的冲突
可以看到提示冲突。
解决办法:
git中可以加入忽略文件权限的配置,具体如下:
$ git config core.filemode false // 当前版本库
$ git config –global core.fileMode false // 所有版本库
这样就设置了忽略文件权限。查看下配置:
$ cat .git/config // 查看git的配置文件
git忽略文件权限的配置
这时候再更新代码就OK了。