为部分存储库获取提供REST/websocket协议的Git服务器

为部分存储库获取提供REST/websocket协议的Git服务器,git,rest,websocket,git-server,Git,Rest,Websocket,Git Server,有了这样的项目,web应用程序使用著名的API提供开箱即用的版本控制,用户可以与自己的便携式、站点无关的数据存储进行交互,这一激动人心的潜力越来越大(遗憾的是,浏览器中没有任何globalStorage-类型的解决方案,只有与远程站点无关的数据存储) 然而,由于Git的安全模型显然是安全的,并且Git无法仅获取/克隆存储库的一个部分(无论是blob、tree还是commit对象),因此当面对需要(尤其是web应用程序)承载整个代码存储库之外的数据时,就会出现一个问题(例如,用户希望脱机的单个页面

有了这样的项目,web应用程序使用著名的API提供开箱即用的版本控制,用户可以与自己的便携式、站点无关的数据存储进行交互,这一激动人心的潜力越来越大(遗憾的是,浏览器中没有任何
globalStorage
-类型的解决方案,只有与远程站点无关的数据存储)

然而,由于Git的安全模型显然是安全的,并且Git无法仅获取/克隆存储库的一个部分(无论是blob、tree还是commit对象),因此当面对需要(尤其是web应用程序)承载整个代码存储库之外的数据时,就会出现一个问题(例如,用户希望脱机的单个页面/数据对象的片段或快照——例如,从未来的脱机Wikipedia web应用程序)

是否有任何扩展协议(或自定义实现)允许Git服务器仅传输存储库的一部分(并且与svn export不同,允许将更改推回服务器)?我可以想象,人们可以刮取Git web服务器的响应,但我想知道是否有任何REST(或websocket)协议(或者,如果没有,自定义软件)的存在使与web客户端的交互更加实用,例如,使用JSON响应(理想情况下使用身份验证和细粒度授权)

我知道,但为了最小化网络流量,我对检索单个blob、树或提交对象的可能性感兴趣