git关于文件权限修改引起的冲突及忽略文件权限的办法

在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突。明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分。下面笔者自己做了个简单的例子来演示这种情况。
1、修改版本库的文件的权限,然后使用diff查看下改变。

$ chmod 777 pack.php
$ git diff pack.php
git文件权限修改示例

git文件权限修改示例
可以看到git把文件权限也列入了版本管理。
2、在另外一个地方clone这个版本库,修改pack.php文件,然后提交。
3、在原版本库下面更新内容。
$ git pull

git文件权限修改引起的冲突

git文件权限修改引起的冲突
可以看到提示冲突。
解决办法:
git中可以加入忽略文件权限的配置,具体如下:

$ git config core.filemode false

这样就设置了忽略文件权限。查看下配置:

$ cat .git/config

git忽略文件权限的配置

git忽略文件权限的配置
这时候再更新代码就OK了。
总结:
笔者个人理解版本管理更注重文件内容,比较好奇为什么git将文件权限列入版本管理,估计是某些场景下有需要。笔者试了下文件所有者和所有组的修改不列入版本管理。另外在windows下git对文件权限是怎么处理的?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 16,229评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 4,173评论 0 11
  • 昨晚睡到半夜,冷醒了。 蜷缩得像冬眠的蛇,想起你说的话,不自觉地开始瑟瑟发抖。 原来我不是蛇,我不冷血。甚至还逞强...
    天涯水东流阅读 260评论 0 0
  • 这是本系列的第六篇文章,在开始之前,不妨先看这五篇: 如何写出一篇好文章?(1) 如何写出一篇好文章?(2) 如何...
    文说世事阅读 1,496评论 1 8
  • 【卵巢囊肿癌前案例】 各位兄弟姐妹们大家早上好!新的一天开始了愿一周的起点带给大家新生命的起航!我是美宝的受益者今...
    再生生命科学一一MEBO美宝阅读 2,753评论 1 1

友情链接更多精彩内容