【问题标题】:How to preserve the file permission in git?如何在git中保留文件权限?
【发布时间】:2011-11-02 02:04:21
【问题描述】:

我遇到了一个问题,我花了很长时间才找到解决方案,但仍然无法解决。

当我尝试通过 git 将我的网站部署到 Django 主机时,我遇到的问题是“DatabaseError: 'attempt to write a readonly database”。

似乎 git 会将我的文件的权限从 777 更改为 755。 但是每当我提交我的项目时,这种变化都会持续存在。但是,我仍然需要在我的数据库(sqlite 数据库)中写入一些内容。

有没有人建议配置我的 git 以在每次提交时保留权限模式?

【问题讨论】:

    标签: database django git permissions


    【解决方案1】:

    简而言之,你不能。

    在更长的时间里,有像 etckeeper 这样的项目可以自动完成,或者你可以编写一个小的钩子脚本来修复权限(这可能是我的做法)。

    例如,如果您提交以下内容:

    #!/bin/sh
    chmod -R XXX file_or_directory/
    

    例如,scripts/fix_permissions/,然后通过将其模拟链接到服务器上的.git/hooks/post-receive,将其作为post-receive 挂钩运行。

    【讨论】:

    • 请注意,如果您可能应该使用 post-receive 挂钩来更新您的服务器正在运行的文件,因为直接从服务器上的 Git 存储库运行某些东西通常是一个坏主意。
    • 确实如此。我喜欢将我的钩子保留在 repo 中,因此它们与其他所有内容一起进行版本控制,但那是因为我从事的小项目是所有开发人员都对服务器具有 root 访问权限……但这确实会打开一个潜在的安全漏洞。
    猜你喜欢
    • 2011-03-13
    • 2012-10-27
    • 2019-01-17
    • 2012-01-10
    • 2017-04-24
    • 2016-04-21
    • 2011-10-13
    • 2023-03-04
    相关资源
    最近更新 更多