美文网首页Linux下优雅的部署PHP环境
git 遇到的坑-git关于文件权限修改,引起的冲突及忽略文件权

git 遇到的坑-git关于文件权限修改,引起的冲突及忽略文件权

作者: 7c03aed0f01f | 来源:发表于2017-01-10 19:13 被阅读42次

    在发布项目到线上时,很多时候需要修改文件的权限,如果是使用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对文件权限是怎么处理的?

    相关文章

      网友评论

        本文标题:git 遇到的坑-git关于文件权限修改,引起的冲突及忽略文件权

        本文链接:https://www.haomeiwen.com/subject/opclbttx.html