原文地址:https://www.cnblogs.com/jiangxiaobo/p/9856697.html
我在做linux自动化构建C++程序时每次git pull时总是报冲突,需要合并代码,因为做自动化构建确定是不会修改代码的,直到看到上面的博客才知道原来修改文件权限git会认为修改了文件,检查自己的自动化构建发现执行了chmod 777 -R .
以下为原文:
我们在使用git进行版本管理的时候,有时候只是修改了文件的权限,比如将pack.php修改为777,但其实文件内容并没有改变,但是git会认为此文件做了修改,原因是git把文件权限也算作文件差异的一部分了。下面做个测试:
1、修改版本库的文件的权限,然后使用diff查看下改变。
可以看到git把文件权限也列入了版本管理。
2、在另外一个地方clone这个版本库,修改pack.php文件,然后提交。
3、在原版本库下面更新内容。
$ git pull
可以看到提示冲突。
解决办法:
git中可以加入忽略文件权限的配置,具体如下:
$ git config core.filemode false
这样就设置了忽略文件权限。查看下配置:
$ cat .git/config
这时候再更新代码就OK了。