保护git存储库中的文件

and*_*xus 10 git push repository gitignore

我有一个中央存储库,其中包含我希望防止其他用户更改(通过推送)的文件子集.如果我将这些文件添加到.gitignore,则不会克隆它们.

是否有可能克隆所有文件,但克隆后.gitignore在客户端添加一些文件?

Von*_*onC 1

我最初想到了一个过滤器驱动程序(请参阅Pro Book),它将:

  • 在涂抹步骤中保存文件内容
  • 在清理步骤中将恢复您的文件内容。

替代文本

但这不是一个好的解决方案,因为这些脚本是关于无状态文件内容转换的(请参阅此 SO 答案)。

您可以尝试在钩子中强制执行保存/恢复机制(请参阅相同的SO答案),但请注意,它将位于您的存储库本地(它将仅保护存储库中的文件,不会推送钩子)

您还可以使用:

git update-index --assume-unchanged file
Run Code Online (Sandbox Code Playgroud)

请参阅“使用 git,在命令行中临时从提交中排除更改的跟踪文件”,这也是仅本地保护。这将保护它们免受外部推送到您的存储库(“导入”),但如果您发布它们(“导出”),则可以在客户端进行修改。