2011-08-23 157 views
8

我遇到了一個問題,花了很長時間才找到解決方案,但仍然無法獲得解決方案。如何在git中保留文件權限?

我遇到的問題是'DatabaseError:'嘗試編寫只讀數據庫',當我試圖通過git將我的網站部署到Django主機時。

好像git會將我的文件的權限從777更改爲755. 但是,每當我提交我的項目時,此更改將持續存在。但是,我仍然需要寫入我的數據庫(sqlite數據庫)。

有沒有人有建議配置我的git在每次提交時保留權限模式?

回答

11

總之,你不能。

在更長的時間內,有像etckeeper這樣的項目可以自動完成,或者你可以編寫一個小鉤子腳本來修復權限(這可能是我怎麼做的)。

例如,如果你犯這樣的東西:

#!/bin/sh 
chmod -R XXX file_or_directory/ 

爲,例如,scripts/fix_permissions/,然後通過simlinking成.git/hooks/post-receive在服務器上運行它作爲一個post-receive鉤。

+0

請注意,如果您應該使用post-receive掛鉤更新服務器運行的文件,因爲直接從服務器上的Git存儲庫運行某些內容通常是個壞主意。 – Amber

+0

這是非常真實的。我喜歡在回購協議中保留自己的角色,因此它們與其他所有內容一起進行了版本管理,但那是因爲我正在開發小型項目,所有開發人員都可以對服務器進行root訪問......但它肯定會帶來潛在的安全漏洞。 –