gpt4 book ai didi

git - 我可以将 git 中的文件设置为只读吗?

转载 作者:太空狗 更新时间:2023-10-29 12:48:57 24 4
gpt4 key购买 nike

我正在编写一个使用版本化核心数据模型的 iOS 应用程序。
我差点发布了一个版本的应用程序,但在升级时崩溃了,因为我不小心编辑了版本并创建了一个新版本。

为了阻止这种情况再次发生,我想以某种方式标记旧版本,以防止在没有先删除标记的情况下修改这些文件的任何 checkin 。

为了让事情变得更复杂,我使用的是 git-svn,所以将只读存储库作为子模块是行不通的。

最佳答案

基本上你不能。
如果您没有关闭标志,Git 将跟踪使用 chmod 完成的更改。

您可以使用一些解决方法来做到这一点。

  • Git 钩子(Hook)

    在您的本地和服务器 Hook 中验证所需的文件不是 diff 的一部分,这意味着它没有被修改。

    为什么两者兼而有之?

    由于用户可以删除本地 Hook ,因此您想在服务器中对其进行验证。可以在 pre-receive or update Hook 中完成。


  • 只读子模块

    将文件放在单独的存储库中并将其用作子模块。除了您允许写入的用户之外,此存储库对所有用户都是只读的。
    我不知道你的 git 服务器是什么,但大多数服务器都支持只读或锁定到任何给定的分支。

  • git update-index --assume-unchanged

    它让 Git 忽略任何检查并假设它没有改变。当您对工作树文件进行更改时,您必须在修改它们之前或之后通过删除“假设未更改”位来明确地告诉 Git。

这将“忽略”对该文件所做的任何本地更改。

关于git - 我可以将 git 中的文件设置为只读吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16795254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com