在發布項目到線上時,很多時候需要修改文件的權限,如果是使用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了。