git lfs预接收挂钩以防止存储库中不需要的文件

时间:2017-01-24 10:46:08

标签: git githooks git-lfs

是否可以编写服务器端预接收挂钩以防止通过提交将大型或二进制文件添加到存储库?

本地我可以通过以下方式将文件类型添加到.gitattribute文件来控制git-lfs行为:

    git lfs track "*.zip"

这会导致如果添加新的zip文件,它将由git-lfs管理,而不是提交给git对象库。

git-p4甚至允许我使用文件大小阈值:

    largeFileCompressedThreshold = 1m
    largeFileThreshold = 50m

对于可能发生的多个开发人员和开发环境,可以在不配置git-lfs的情况下添加这样的二进制文件,因此这样的文件可以直接提交给git。 我想要一个服务器端钩子,它拒绝这样的提交并提供有意义的消息,因此开发人员可以轻松识别问题。

理想情况下,此接收挂钩将使用现有的git功能来解析,例如.gitattributes而不是手动解析脚本中提交的所有文件。

1 个答案:

答案 0 :(得分:0)

这可以使用CheckFile框架中Git-Hooks插件的sizelimit指令来完成。我们使用它并且效果非常好。