我是唯一参与这个 git 项目的人。每次我在本地 Ubuntu 存储库中编辑文件,然后推送到 Bitbucket 并拉到我的生产存储库时,git 都会将编辑的文件更改为 -rwxrwxr-x 775。Apache 不喜欢这样。
本地系统:Ubuntu Linux 上的 git 版本 1.8.1.2
生产系统:CentOS/Red Hat Linux 上的 git 版本 1.7.12
当我将权限修复为 755 时,请执行
git diff
或者
git diff -p
它什么也没显示。
在我的本地存储库中,权限为 755,文件均归 haws 所有。在我的生产存储库中,所有其他权限都保持在 755,并且所有文件(包括 contact.php)都归我的用户名所有。
在本地和生产存储库中,我按如下方式更改了 core.filemode 以试图阻止这种行为,
core.filemode = false
我在合作项目中遇到过这样的谜团,所以我真的很想了解正在发生的事情。
- 如何查看 git 更改此文件权限的原因?
- 我怎样才能让 git 停止更改它?
我也试图在这里找到解决方案:防止 Git 更改 pull 时的权限无济于事。
我的最终解决方案(感谢 VonC 的指导):
多亏了 VonC 的出色解释,我才勇敢地发现每次登录服务器时,我的 umask 都会回到 0002。所以我在我的设置的 Linux 主机
掩码 0022
或使用符号表示法(为了一点附加值)
umask u=a,g-w,o-w
或者
umask u=a,go-w
(允许用户的所有权限,不允许组和其他人的写权限)
这解决了我的问题。
- 我之前已将 git config core.sharedRepository 设置为 true,但这不是我的问题,一旦问题得到解决,我就删除了该设置。