2014-09-24 100 views
0

在我的本地倉庫中,我有一個filemode爲550的文件。在.git/config中,我的本地倉庫和服務器倉庫都設置了filemode = true。但是當我從github中取出時,文件總是以775的速度下降!爲什麼git爲文件設置filemode 755應該是750?

我對此非常困惑。有沒有辦法告訴git如何做文件的權限?所以它不會像這樣改變它們?我也很好奇,爲什麼git是這樣設計的,不尊重文件權限?我意識到我可以製作一個shell腳本來修復它,等等,但我只是好奇。

對不起,如果這是重複的,我找不到任何解決這個問題的東西。

回答

3

Git只存儲一個文件權限的單個位:執行或不執行。

其餘的位是根據你的umask設置的(至少在Unix/Linux系統上)。如果您想要640或750設置,請將您的umask設置爲027而不是022。 (所有炮彈都有umask作爲內置命令,出於同樣的原因,所有炮彈都有chdir作爲內置。)請記住,umask設置是「要除去的位」,因此027表示「帶走組寫入;拿走其他讀取+寫入+執行「。

(的umask是爲什麼大多數方案應主要創建模式06660777大多數文件。)

+0

這裏從另一個問題是[另一個答案](http://stackoverflow.com/a/34546706/4410590),其參考[Git索引格式](https://github.com/git/git/blob/master/Documentation/technical/index-format.txt) – victor 2016-08-01 10:42:04

相關問題