感謝
在釋出項目到線上時,很多時候需要修改檔案的權限,如果是使用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的配置檔案