2014-09-24 108 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

相关问题