GIT - 如何通过服务器强制执行文件排除?

时间:2013-07-11 09:45:17

标签: git gitignore

我想通过git服务器强制执行文件排除。 用户不应该将与规则不匹配的文件推送到中央存储库。 我试图在git服务器端设置/ info / exclude中的规则,但它忽略它。

有办法吗? (不包括钩子解决方案)。

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

您可以要求用户添加系统配置:

git config --system core.excludesfile /share/path/to/system/wide/gitignore

这样,用户就会引用共享(gitignore)文件。

答案 1 :(得分:1)

您可以创建一个预接收挂钩,分析推送并查找文件扩展名。

我这样做是为了避免二进制文件被推送,但允许使用具有特定扩展名的文件(jpg,mov,mp3等)

答案 2 :(得分:0)

  

排除挂钩解决方案

没有。一个Git服务器,它是一个位于某个地方且只是与之交互的裸存储库,并不关心它被推送到什么类型的对象。它只是将对象复制到自己的对象数据库中,并不时更改一些引用指针。它中没有任何内容可以查看树对象,并检查某些路径是否与您想要排除的路径相匹配。

执行此操作的唯一方法是使用挂钩,预先接收或更新挂钩。您将获得新的参考,并查看您要排除的路径是否在新提交中被触及。如果是,你可以放弃推动。