我们的工作流程是在本地计算机上开发,将更改提交到中央存储库,然后检查我们需要的该存储库的分支。
问题是 Git 会根据签出的用户更改其签出的文件的所有权甚至文件权限。这样做的直接结果是,我们的 CSS 文件在签出后变得不可读,因为 Git 将文件所有权更改为在 Web 根目录中进行 Git 拉取的人员。
Example:
- Before
git pull
: style.css
拥有者user_a:group_a
- After
git pull
: style.css
拥有者user_b:user_b
我想保留所有权user_a:group_a
。我不想每次我的团队之一对文件进行更改时都必须登录,并将所有权更改回原始配置。
其他人如何处理这个问题?如何处理多个用户使用的存储库。我们的系统上有 suphp 并且无法将其删除。
Git 不会更改文件权限或所有权。只是它(大多数)也不存储它,它不存在于您的存储库中,因此它们会更改为您的用户拥有的任何内容。就像任何文件创建一样。
Git 支持两种权限集:可执行位打开和可执行位关闭。没有其他的。所有权信息根本不存储。
See 这个线程 https://stackoverflow.com/questions/11230171/git-is-changing-my-files-permissions-when-i-push-to-server- “如果您想要特定权限,则需要手动执行。”
建议使用一些解决方案:您可以使用单独的工具来完成此操作,使用用户帐户和 umask 的适当组合来默认正确设置它们,或者自己编写一个 git hook 来完成此操作。必须在进行结账的用户身上安装一个钩子。
正如 @ikke 在评论中所说,Git 并不是真正的部署工具,不应该这样使用。它是源代码的版本控制系统。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)