我想通过git服务器强制执行文件排除。 用户不应该将与规则不匹配的文件推送到中央存储库。 我试图在git服务器端设置/ info / exclude中的规则,但它忽略它。
有办法吗? (不包括钩子解决方案)。
感谢您的帮助
答案 0 :(得分:1)
您可以要求用户添加系统配置:
git config --system core.excludesfile /share/path/to/system/wide/gitignore
这样,用户就会引用共享(gitignore)文件。
答案 1 :(得分:1)
您可以创建一个预接收挂钩,分析推送并查找文件扩展名。
我这样做是为了避免二进制文件被推送,但允许使用具有特定扩展名的文件(jpg,mov,mp3等)
答案 2 :(得分:0)
排除挂钩解决方案
没有。一个Git服务器,它是一个位于某个地方且只是与之交互的裸存储库,并不关心它被推送到什么类型的对象。它只是将对象复制到自己的对象数据库中,并不时更改一些引用指针。它中没有任何内容可以查看树对象,并检查某些路径是否与您想要排除的路径相匹配。
执行此操作的唯一方法是使用挂钩,预先接收或更新挂钩。您将获得新的参考,并查看您要排除的路径是否在新提交中被触及。如果是,你可以放弃推动。