Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;这种比较需要很长时间才能产生。”;github上的错误_Github_Pull Request_Gitattributes - Fatal编程技术网

&引用;这种比较需要很长时间才能产生。”;github上的错误

&引用;这种比较需要很长时间才能产生。”;github上的错误,github,pull-request,gitattributes,Github,Pull Request,Gitattributes,我正在从事一个项目,该项目有大量的json文件,这些文件从未在pull请求中检查过,但偶尔需要更改。最近我们不得不对它们做一些小的更改,github不允许我用这些更改创建拉请求。相反,它给了我: This comparison is taking too long to generate. Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or t

我正在从事一个项目,该项目有大量的json文件,这些文件从未在pull请求中检查过,但偶尔需要更改。最近我们不得不对它们做一些小的更改,github不允许我用这些更改创建拉请求。相反,它给了我:

This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
我在本地检查了diff,实际的代码更改非常小(可能更改了200行),但这些json文件中有数百万行更改。有没有办法让Github忽略它们?目前,我无法进行公关,因此变更无法通过我们正常的公司审查流程

我曾尝试将.gittributes文件与
*.json langualist generated=true
一起使用,但不幸的是,没有任何效果


编辑:正如在接受的答案中所建议的,我联系了github支持部门,了解这个案例。他们的建议是用一个小提交创建一个新分支,创建PR,然后合并我想要部署到其中的实际分支。这将更新PR,虽然差异仍然不会显示,但它将允许我创建PR。

当您比较GitHub上的两个分支时,GitHub必须使用Git计算这些更改的差异,然后为您呈现。在您的例子中,您有数百万行的更改,而Git在这种情况下的性能不是很好,因为用于计算差异的算法是O((N+M)D)。因此,如果存在与行数成比例的差值,则算法本质上是O(N²)。拥有一个大的N会让情况变得更糟

GitHub对请求所需的时间有限制,因此大量更改不会在接口中呈现。即使diff不会渲染并且仍然打开pull请求,也可以选择所需的分支。如果没有,您可能需要求助于使用API,它不会生成用于渲染的差异,因此可能工作得更好一些

我鼓励您让GitHub支持人员知道这一点,如果您还没有找到通过UI实现这一点的方法,因为他们可以通知某人确保该界面可用于创建PR,即使差异无法呈现。你可能不是第一个遇到这种情况的人


您可能还希望将这些文件存储在Git之外的某类工件服务器上,并基于哈希将它们下拉到您的存储库中,这样您就不会出现这种病态情况。

当您比较GitHub上的两个分支时,GitHub必须使用Git计算这些更改的差异,然后为您呈现它。在您的例子中,您有数百万行的更改,而Git在这种情况下的性能不是很好,因为用于计算差异的算法是O((N+M)D)。因此,如果存在与行数成比例的差值,则算法本质上是O(N²)。拥有一个大的N会让情况变得更糟

GitHub对请求所需的时间有限制,因此大量更改不会在接口中呈现。即使diff不会渲染并且仍然打开pull请求,也可以选择所需的分支。如果没有,您可能需要求助于使用API,它不会生成用于渲染的差异,因此可能工作得更好一些

我鼓励您让GitHub支持人员知道这一点,如果您还没有找到通过UI实现这一点的方法,因为他们可以通知某人确保该界面可用于创建PR,即使差异无法呈现。你可能不是第一个遇到这种情况的人


您可能还希望将这些文件存储在Git之外的某个工件服务器上,并基于哈希将其下拉到您的存储库中,在这种情况下,您就不会出现这种病态情况。

如果json文件有数百万行,您不应该将其放在github中。将它放在gitignore文件中,然后再次尝试推送代码。如果你真的想把它保存在git中,那么我建议你把这些文件分成更小的块,然后再尝试推送它。那些数百万行已经跨越了相当多的文件。他们需要使用git的原因是。。。复杂。基本上,它们缓存来自第三方服务的响应,我们不希望在单元测试期间实际命中这些响应,但我们确实希望测试代码是否正确处理响应。我们的部署管道无法访问第三方,因此如果我们希望它运行测试,它需要能够从git访问这些文件。如果json文件有数百万行,您不应该将其放在github中。将它放在gitignore文件中,然后再次尝试推送代码。如果你真的想把它保存在git中,那么我建议你把这些文件分成更小的块,然后再尝试推送它。那些数百万行已经跨越了相当多的文件。他们需要使用git的原因是。。。复杂。基本上,它们缓存来自第三方服务的响应,我们不希望在单元测试期间实际命中这些响应,但我们确实希望测试代码是否正确处理响应。我们的部署管道无法访问第三方,因此如果我们希望它运行测试,它需要能够从git访问这些文件。