在GitHub存储库中,你可以看到“语言统计”,它显示了用某种语言编写的项目的百分比。但是,它不显示项目由多少行代码组成。通常,我想快速了解项目的规模和复杂性,而代码行数可以给人留下良好的第一印象。500行代码意味着一个相对简单的项目,10万行代码意味着一个非常大/复杂的项目。

那么,是否有可能从GitHub存储库中获得以各种语言编写的代码行,最好不克隆它?


“计算git存储库中的行数”问题询问如何计算本地git存储库中的代码行数,但是:

你必须克隆这个项目,这可能是巨大的。例如,克隆Wine这样的项目需要很长时间。 你可以计算文件中不一定是代码的行数,比如i13n文件。 如果您只计算(例如)Ruby文件,那么您可能会错过大量其他语言的代码,比如JavaScript。您必须事先知道项目使用哪些语言。您还必须为项目使用的每种语言重复计数。

总而言之,这对于“快速检查项目规模”来说可能太费时了。


当前回答

从@Tgr的评论中,有一个在线工具: https://codetabs.com/count-loc/count-loc-online.html

其他回答

从@Tgr的评论中,有一个在线工具: https://codetabs.com/count-loc/count-loc-online.html

您可以使用sourcegraph,这是一个开放源代码的代码搜索引擎。它可以连接到你的GitHub帐户,索引内容,然后在管理部分,你会看到索引的代码行数。

我为谷歌Chrome浏览器创建了一个扩展- GLOC,适用于公共和私人回购。

计算项目的代码行数:

项目详情页面 用户的存储库 组织页面 搜索结果页面 趋势页面 探索页面


嘿,这一切都太简单了……

从第一次提交创建一个新分支 当你想要找到你的统计,从主创建一个新的PR PR将显示更改的行数——当你从第一次提交开始执行PR时,所有的代码都将被算作新行

额外的好处是,如果您不批准PR并将其保留在原地,那么当您将更改合并到main中时,统计信息(提交数量、更改的文件和代码总行数)将保持最新。:)享受。

你可以使用git clone—depth 1 <url>克隆最新的提交,然后使用Github使用的相同软件Linguist执行自己的分析。这是我知道你能得到代码行数的唯一方法。

另一种选择是使用API列出项目使用的语言。不是以行为单位,而是以字节为单位。例如……

$ curl https://api.github.com/repos/evalEmpire/perl5i/languages
{
  "Perl": 274835
}

虽然这是有保留地,但该项目包括YAML和JSON,这是网站承认的,但API不承认。

最后,您可以使用代码搜索来询问哪些文件与给定的语言匹配。这个例子询问perl5i中的哪些文件是Perl文件。https://api.github.com/search/code?q=language: perl +回购:evalEmpire / perl5i。它不会为您提供行,您必须使用每个文件返回的url分别询问文件大小。