gpt4 book ai didi

Git 在 checkout 时更改了我的文件权限

转载 作者:IT王子 更新时间:2023-10-29 00:51:09 26 4
gpt4 key购买 nike

我们的工作流程是在本地机器上开发,将更改提交到中央存储库,然后检查我们需要的该存储库的分支。

问题是 Git 会根据进行 checkout 的用户更改其 checkout 文件的所有权甚至文件权限。这样做的直接结果是我们的 CSS 文件在 check out 后变得不可读,因为 Git 将文件所有权更改为在 webroot 中执行 Git pull 的人。

例子:

  • git pull 之前:style.css 属于 user_a:group_a
  • git pull 之后:style.css 属于 user_b:user_b

我想将所有权保留为 user_a:group_a。我不想每次我的团队成员更改文件并将所有权更改回原始配置时都必须登录。

其他人如何处理这个问题?您如何处理多个用户使用的存储库。我们的系统上有 suphp,无法将其删除。

最佳答案

Git 不会更改文件权限或所有权。只是它(大部分)也不存储它,它不存在于您的 repo 协议(protocol)中,因此它们会更改为您的用户拥有的任何内容。就像创建任何文件一样。

Git 支持两种权限集:可执行位打开和可执行位关闭。没有其他的。所有权信息根本不存储。

参见 this thread - “如果您需要特定权限,则需要手动执行。”

有一些建议的解决方案:您可以使用单独的工具为您完成,使用用户帐户和 umask 的适当组合以在默认情况下正确设置它们,或者自己编写一个 git hook 来完成。必须在执行 checkout 的用户上安装一个 Hook 。

就像@ikke 在评论中所说的那样,Git 并不是真正的部署工具,不应该这样使用。它是一个源代码的版本控制系统。

关于Git 在 checkout 时更改了我的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com