【问题标题】:prevent permission modified files from being modified on git防止权限修改文件在git上被修改
【发布时间】:2017-04-27 13:06:43
【问题描述】:

我已将本地分支上的文件权限更改为rw-r--r--,但推送到云端后仍然可以修改,有什么办法可以防止这种情况吗?

【问题讨论】:

  • 如果只有所有者有写权限,git必须在文件所属的同一用户下运行

标签: git permissions bitbucket


【解决方案1】:

我猜你的意思是:

  • 您想让文件只能由您(所有者)写入
  • 您希望将这些具有权限的文件完整地推送到远程(例如 Bitbucket Cloud 或 GitHub)
  • 您希望阻止克隆 repo 的其他用户对这些文件进行更改,因为您最初将它们设置为只能由文件所有者(最初是您)编辑。

这里有两个问题。

  1. Git 不会保留您设置的所有权限更改。它只识别您是否已将特定文件设为可执行文件。在 git 存储库中,文件通常只有以下一组权限:644(所有者可以读+写;组/每个人都可以只读)或755(所有者可以读、写和执行;组/每个人只能读取和执行)。您不能施加进一步的权限限制,因为 git 根本不会存储它们或将它们推送到远程 git 主机
  2. 当我作为用户克隆存储库时,所有文件都是由我的本地用户帐户创建的,现在 是这些文件的所有者。即使 git 跟踪了这些权限,它仍然不起作用,因为克隆 repo 的人拥有这些文件的本地副本。

在我看来,您真正想要做的是阻止用户更改远程存储库中的某些文件。根据存储库主机,您应该能够实现某种 git pre-receive 挂钩来拒绝推送。在此处详细了解您的 git 托管服务可以支持什么,您应该能够实施一些解决此问题的方法。

【讨论】:

  • 谢谢daveruinseverything,你的回答很有帮助... ^_^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-16
  • 2011-06-12
  • 2018-05-29
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多