如何强制对 git checkout 命令创建的文件设置自定义权限?

如何强制对 git checkout 命令创建的文件设置自定义权限?

我需要通过命令创建的文件git checkout具有自定义权限。

即使core.sharedrepository=0777设置了 git,也会创建具有 0644 权限的工作树文件。但我希望它至少是 0664,以便组中的某个人可以写入它们(指定自定义所有者组也很好)

递归应用 chown/chmod 可能会有效,但它像是最后的手段并且浪费资源。

答案1

不要仅使用 git 来管理已安装树的文件权限。

git 是单用户的。它无法跟踪文件所有权和权限,不足以保护多用户系统。即使一个简单的树状结构core.sharedrepository和一个用户足以满足您的使用情况,您也很难让它做您想做的事情。可能它仍然使用默认的umask

考虑一个真正的存档格式,无论是软件包系统还是像 tar 这样的通用存档。在生成存档的脚本中获取正确的权限。

或者,运行权限修复脚本也没什么不好。如果需要,请在更改权限之前检查权限,以避免对文件元数据进行不必要的更改。


无关的考虑:如果要更新此树,请注意 git 不会同步文件,而是合并历史记录。了解这些 git 部署规则理解为什么脚本git pull可能是错误的。

相关内容