0

我正在为我的公司开发团队设置 GIT 存储库,我似乎遇到了一个有趣的问题。

经常会出现多人必须在同一个分支上工作的情况,因此当创建一个分支并将其推送到暂存时,其他开发人员会将分支拉入他们的本地存储库并开始处理代码。然而,我们暂存服务器上的 .git/logs/refs/heads 中的分支具有为用户和组设置的权限,该权限设置为将分支推送到我们的暂存环境的用户。

有没有办法改变 GIT 中的这种默认行为?我们有一个用户组设置,当我们手动更改分支上的组权限时,我们可以推送,但我宁愿没有一个 cron 作业一直在运行更改权限。

在此处的图像中,您可以看到两个已手动更改权限的存储库,以及一个刚刚被推送的存储库。

GIT 牧场和权限列表

4

1 回答 1

1

这是由创建新文件的进程的凭据引起的,无论它们是在 git 存储库中还是在工作副本中。如果通过 SSH 推送,则可能的凭据可能从 SSH 会话中获取,如果通过自定义 git 协议推送,则可能由 git 服务器进程获取,等等。

除非您是 root,否则您无法更改文件的所有者。但是您可以通过在目录上使用 SGID 位来强制执行新创建的文件组。

于 2012-05-23T00:20:27.930 回答