是否可以根据大小限制git推送?

是否可以根据大小限制git推送?,git,size,hook,push,Git,Size,Hook,Push,我在远程服务器上有一个git存储库。当我的用户对这个远程服务器进行“git推送”时,我想根据它的大小限制推送。比方说,如果推送的大小超过100MB,则应停止推送 我正试图使用远程git存储库上的预接收钩子来实现这一点 stackoverflow.com中有一些与解决方案相关的问题。我试过了。但是,它们都不是从远程存储库工作的 有人能帮忙吗?你不能这样做。当预接收和更新挂钩运行时,包(所有数据)已经收到。剩下要做的就是更新refs,这就是钩子允许您中止的内容。从手册页: 在开始更新远程存储库上的引

我在远程服务器上有一个git存储库。当我的用户对这个远程服务器进行“git推送”时,我想根据它的大小限制推送。比方说,如果推送的大小超过100MB,则应停止推送

我正试图使用远程git存储库上的预接收钩子来实现这一点

stackoverflow.com中有一些与解决方案相关的问题。我试过了。但是,它们都不是从远程存储库工作的


有人能帮忙吗?

你不能这样做。当预接收和更新挂钩运行时,包(所有数据)已经收到。剩下要做的就是更新refs,这就是钩子允许您中止的内容。从手册页:

在开始更新远程存储库上的引用之前,将调用预接收挂钩

关于更新钩子也有相同的说法

我甚至不确定,对于一般的传输机制,即使是
git-receive-pack
也知道它将接收的所有内容的最终大小

不过,你到底想解决什么问题?将用户从耗时的推送中解救出来?(他们可以自己取消它们;从用户的角度看这很明显。)在远程设备上控制磁盘空间?在大多数情况下,您可能只需将访问权限限制到您可以信任的用户,以避免将其弄糟,并手动处理异常


如果你必须这样做,那么你真正能够做到这一点的唯一方法就是在用户端包装push,这样他们就可以运行
my push
,以某种方式估计他们将要推动的内容的大小,并决定是否实际推送-但是你又回到了信任用户的角度,因为如果他们不使用包装,他们可以随心所欲。你不能这样做。当预接收和更新挂钩运行时,包(所有数据)已经收到。剩下要做的就是更新refs,这就是钩子允许您中止的内容。从手册页:

在开始更新远程存储库上的引用之前,将调用预接收挂钩

关于更新钩子也有相同的说法

我甚至不确定,对于一般的传输机制,即使是
git-receive-pack
也知道它将接收的所有内容的最终大小

不过,你到底想解决什么问题?将用户从耗时的推送中解救出来?(他们可以自己取消它们;从用户的角度看这很明显。)在远程设备上控制磁盘空间?在大多数情况下,您可能只需将访问权限限制到您可以信任的用户,以避免将其弄糟,并手动处理异常


如果你必须这样做,那么你真正能够做到这一点的唯一方法就是在用户端包装push,这样他们就可以运行
my push
,以某种方式估计他们将要推动的内容的大小,并决定是否实际推送-但是你又回到了信任用户的角度,因为如果他们不使用包装,他们可以推送他们想要的东西。

我想一个有趣的问题是,为什么需要这样做?检查git远程存储库是否会通过推送超过配额限制。我想一个有趣的问题是,为什么需要这样做?检查git远程存储库是否会通过推送超过配额限制。感谢您的帮助杰弗里米的回答。我正在检查git远程存储库是否会通过推送超过配额限制。感谢Jefromi的回复。我试图检查git远程存储库是否会超过推送的配额限制。