【发布时间】:2017-11-19 08:12:41
【问题描述】:
我在 git 存储库中遇到了一些问题,其中一些文件处于只读模式 (chmod 0440)。
有时,其中一个文件在另一个分支上被修改;当您尝试签出该分支时,git 无法使用
warning: unable to unlink path/to/the/file: Permission denied
问题在于这些文件需要处于只读模式,因为当这些文件可写时,超出这些文件使用的框架会引发严重的警告消息,甚至更多问题,每次我们在我们的(重新)安装框架时在持续集成过程中,框架会将这些文件更新为只读模式。
在签出任何文件/分支之前,我尝试使用 git hooks 将这些文件自动 chmod 为 0664,然后将它们 chmod 回 0440,但我不确定这样的钩子是否存在。
一个不需要的解决方案是每次我知道这些文件可以用 git 更改时,我自己将这些文件 chmod 到 0664,然后将它们 chmod 回 0440 以避免在 prod 环境中推送可写文件,但这肯定会导致失败。
另一种解决方案是在 0664 模式下提交它们并更新我们的持续集成过程以在框架被(重新)安装后将这些文件重新 chmod 为 0664 并完全忽略警告;同时为 prod 环境保持 chmod 为 0440。
你们怎么看这个问题,我可以解决它的最佳解决方案是什么?
【问题讨论】:
-
但是....您希望如何覆盖只读文件?我不确定你期望 GIT 在这里做什么。使文件可写或不更新。在我看来,您的实际问题是因为当这些文件可写时,超出这些文件使用的框架会引发严重的警告消息。这似乎意味着您根本不应该将这些文件签入 GIT,当然也不应该更新它们
标签: git file-permissions readonly