【问题标题】:How to ensure Linux file ownership correct when pulling from GIT repo从 GIT 存储库中提取时如何确保 Linux 文件所有权正确
【发布时间】:2016-05-10 02:17:10
【问题描述】:

我回顾了一堆有用的东西,但仍然不清楚如何做我需要的 (How do i change file ownership after git commit; How to keep git from changing file ownership; Making git push respect permissions?; Retaining file permissions with Git)

考虑到重要的时间已经过去,现在有一个简单、直接的解决方案吗?

是做什么的?

尝试:
- Windows 开发环境 (XAMPP) 中的代码/测试
- 创建/管理不同的代码版本 (GIT)
- 将代码版本推送到远程仓库 ... 在 WAMP 服务器 (GIT) 上
- 将不同版本从 repo 签出到 dev 和/或 live 环境 (GIT)

到目前为止,如此明显 - GIT 的核心用例,几乎每个人都需要这样做?

但复杂性:
- 为了在实时环境中实际运行(这是重点),文件和权限需要正确
- 代码分布在 htdocs(主站点)、符号链接目录(最终用户可访问的内容,如图形等)和非用户可访问的源代码(位于 www 根目录之上)
- 这些不同的区域需要不同的用户所有权 -> 不同的权限

问题:由所有引用的问题以一种或另一种形式确定:
- Git 用运行 git 命令的用户组的 owner:group 覆盖文件所有权,并弄乱了实际运行应用程序所需的权限

理想的解决方案:
- 了解/维护目标环境所需的所有权设置和权限的工具,例如逐个目录:目录 A 中的文件应该有 ownerA、groupB 和权限 xyzxyzxyz 并且能够在 git 搞砸之后重新应用它们

目前考虑:
选项 1:允许此操作的 in-Git 功能或标志设置。

- 否:'git 不是部署工具'

选项 2:使用 git-cache-meta 存储文件设置,然后再次应用文件设置。
- 否:文件来自没有 Unix 类型权限的 Windows 开发环境,因此无法处理传入权限

选项 3:使用(极少文档且有效地仅限专家)元存储
- 否:据我所知,与选项 2 相同的问题

选项 4:查找、研究和试验一整套额外的工具(例如 Deployer、Gitolite),这些工具似乎旨在做一系列其他事情,可能会或可能不会做我正在寻找的事情
- 也许:但是,如果是这样:哪一个可以做到这一点?你用什么?什么是容易/简单的实现?

选项 5:在相关目录上设置组 ID 以强制“组”所有权
- 否:这对“所有者”或权限没有帮助

【问题讨论】:

  • 为什么没有一个带有“部署”目标的 makefile,并在路径上的其他地方有 repo。
  • @Ignacio 可能,或者我想的任何自动化 shell 脚本......可能作为接收后挂钩更好。我真的希望有一条比编写脚本来处理它更简单的路线。

标签: linux git file permissions


【解决方案1】:
猜你喜欢
  • 2011-06-17
  • 2015-07-16
  • 2018-08-05
  • 2017-04-10
  • 2014-11-13
  • 2013-05-19
  • 2014-01-14
  • 2022-01-20
  • 1970-01-01
相关资源
最近更新 更多