从Git存储库克隆时,需要确保特定的头文件始终是只读的

时间:2015-11-19 15:38:47

标签: git

当修改某些其他文件时,将自动生成此特定(*.hpp)文件(例如,附加)。我使用Python脚本生成此文件。

我不希望随时手动编辑此文件。

我的假设是,如果我提交并将特定文件作为只读文件推送,然后将其检索回来,它仍然是只读的。可悲的是,并非如此,因为Git不记得文件模式。

有没有办法确保从存储库克隆项目的那一刻,这个特定的文件将变为只读?我不确定是否可以使用挂钩。

我正在使用最新版本的Tortoise Git。

3 个答案:

答案 0 :(得分:0)

git没有跟踪文件权限。你可以把它添加到.gitignore

echo "generated.hpp" >> .gitignore

如果您没有.gitignore将此新文件添加到存储库。

答案 1 :(得分:0)

编写一个简单的控制台程序,使该文件成为只读文件。称之为您自己的过滤器MyReadOnly

仅对该存储库使用此类内容:git config filter.indent.smudge MyReadOnly

比照Pro Git v2 - Keyword Expansion

答案 2 :(得分:0)

Git无法做到这一点。

当您克隆存储库时,您在远程存储库上设置的挂钩不会与克隆的存储库一起下载,因此用户必须在克隆后手动添加挂钩。

你最好的选择是:

  • 提醒用户该文件是自动生成的,以减少用户修改文件的机会。在文件名中明确说明,例如MyFile.autogenerated.hpp并在文件顶部添加一个大评论,其中包含#34;请勿编辑 - 自动生成"警告

  • 在持续集成服务器上运行检查以再次自动生成文件,并与Git中的文件进行比较,如果发现任何差异,则无法进行构建。