【发布时间】:2012-07-19 10:19:50
【问题描述】:
我对 Git 有疑问。我在 Google 和 StackOverflow 中搜索了解决方案,但没有任何帮助。
问题在于,每次 git 更新工作目录中的某些文件时(当我签出分支或合并分支等时),文件权限都会更改,从而添加“可写入组”标志。 如果文件可写入分组,我的 apache 会显示该文件的“错误 500”。
示例: 我有一个文件 index.php。权限是“-rwxr-xr-x”。当前(活动)分支是主分支。此文件在“开发”分支中更改。 我执行“git checkout develop”并且文件 index.php 获得权限“-rwxrwxr-x”(添加了可写到组)。我的网站停止工作。由于 apache 不允许在 php 文件中使用此标志(我不知道为什么,但我无法更改)。
每次执行“git checkout develop”时,我还需要执行“chmod g-w index.php”。我不喜欢执行两个命令(有时我忘记执行此命令,我的网站无法运行)。
我可以做些什么来解决这个问题? 我认为这与umask有关。我做了一些我在网上找到的技巧,但没有任何效果。
谢谢。
【问题讨论】:
-
你有什么理由不能适当地设置你的 umask(即设置为 0022 或类似的)?
-
怎么做?要设置umask?这个系统是改变还是只有 git 改变?如果系统那么我不能改变这个
-
运行
umask 0022。要将其设置为交互式会话,请将此命令放入您的.bashrc或 shell 的等效项中。总是设置它,但它在你的.profile。 -
我不想更改任何系统设置。该站点与该用户一起运行。我担心这会影响其他事情。有没有办法只通过更改 git 设置来解决问题?我知道 git 中有更新后的钩子。但我找不到如何使用钩子解决这个问题。
-
不是git问题,是umask问题;如果站点以该用户身份运行并且仅当该用户创建不可组写入的文件时才有效,那么您肯定想要将此用户的umask更改为0022。(
.profile是用户 设置,而不是系统设置)
标签: git permissions umask