我正在编写一个使用版本化核心数据模型的iOS应用程序 我刚刚发布了一个在升级时崩溃的应用程序版本,因为我不小心编辑了旧版本以及创建一个新版本。
为了再次阻止这种情况发生,我想以某种方式标记旧版本,以防止在没有先删除标记的情况下修改这些文件的任何签入。
为了使事情变得更复杂,我正在使用git-svn,所以将只读repo作为子模块是行不通的。
答案 0 :(得分:2)
基本上你不能
如果您没有关闭旗帜,Git将跟踪chmod
所做的更改。
您可以使用一些解决方法来执行此操作。
验证您的本地和&服务器挂钩所需文件不属于diff
,这意味着它未被修改。
由于本地挂钩可以被用户删除,因此您需要在服务器中对其进行验证。可以在pre-receive or update
挂钩中完成。
git update-index --assume-unchanged
这将“忽略”对此文件所做的任何本地更改。
答案 1 :(得分:0)
初始化具有只读访问权限的新回购并将其添加为submodule
答案 2 :(得分:0)
您是否考虑过标记您的版本?标签就像只读分支。您可以将标记指针移动到另一个分支,但是您必须使用强制(-f)选项,这样您至少必须考虑您正在做什么,您赢了&#39这是偶然的。这是关于git标记的一个很好的参考:https://git-scm.com/book/en/v2/Git-Basics-Tagging
答案 3 :(得分:-2)
chmod 400 /path/to/file
怎么样?