質問: githubリポジトリからコードの行数を取得できますか? githubリポジトリでは、言語で書かれたプロジェクトのパーセントを表示する「言語統計」を見ることができます。ただし、プロジェクトが何行のコードで構成されているかは表示されません。多くの場合、私はプロジェクトの規模と複雑さを素早く理解したいと思いますし、コードの行数が良い第一印象を与えることができます。 500行のコードは比較的単純なプロジェクトを意味し、10万行のコードは非常に大規模で複雑なプロジェクトを意味します。それでは、できれば複製せずに、githubリポジトリからさまざまな言語で書かれたコード行を取得することは可能ですか?“ gitリポジトリの行数を数える ”という質問は、ローカルgitリポジトリのコード行数を数える方法を尋ねていますが、 あなたはプロジェクトを複製しなければなりません。たとえば、wineのようなプロジェクトのクローンを作成するには何年もかかります。 i13nファイルのように、必ずしもコードとは限らないファイル内の行を数えることができます。 just(たとえば)rubyファイルを数えると、javascriptのような他の言語の大量のコードを見逃してしまう可能性があります。プロジェクトで使用されている言語をあらかじめ知っておく必要があります。また、プロジェクトで使用されている言語ごとにカウントを繰り返す必要があります。 結局のところ、これは「プロジェクトの規模を素早くチェックする」には時間がかかりすぎる可能性があります。
回答: シェルスクリプト、cloc-gitこのシェルスクリプトを使用して、1つのコマンドでリモートgitリポジトリの行数を数えることができます。#!/usr/bin/env bash git clone --depth 1 "$1" temp-linecount-repo && printf "('temp-linecount-repo' will be deleted automatically)\n\n\n" && cloc temp-linecount-repo && rm -rf temp-linecount-repo installationこのスクリプトをインストールするには _ cloc _ (“ count lines of code”)が必要です。 clocはおそらくあなたのパッケージマネージャと一緒にインストールすることができます - 例えば homebrew を付けたbrew install cloc。スクリプトをインストールするには、そのコードをファイルcloc-gitに保存し、chmod +x cloc-gitを実行してから、ファイルを$pathなどの/usr/local/bin内のフォルダーに移動します。使用法スクリプトは1つの引数を取ります。これはgit cloneが受け入れる任意のurlです。例は、https://github.com/evalempire/perl5i.git(https)またはgit@github.com:evalempire/perl5i.git(ssh)です。 「クローンまたはダウンロード」をクリックすると、どのgithubプロジェクトページからでもこのurlを取得できます。出力例$ cloc-git https://github.com/evalempire/perl5i.git cloning into 'temp-linecount-repo'... remote: counting objects: 200, done. remote: compressing objects: 100% (182/182), done. remote: total 200 (delta 13), reused 158 (delta 9), pack-reused 0 receiving objects: 100% (200/200), 296.52 kib | 110.00 kib/s, done. resolving deltas: 100% (13/13), done. checking connectivity... done. ('temp-linecount-repo' will be deleted automatically) 171 text files. 166 unique files. 17 files ignored. http://cloc.sourceforge.net v 1.62 t=1.13 s (134.1 files/s, 9764.6 lines/s) ------------------------------------------------------------------------------- language files blank comment code ------------------------------------------------------------------------------- perl 149 2795 1425 6382 json 1 0 0 270 yaml 2 0 0 198 ------------------------------------------------------------------------------- sum: 152 2795 1425 6850 ------------------------------------------------------------------------------- 代替案手動でコマンドを実行するシェルスクリプトを保存してインストールするのが面倒な場合は、手動でコマンドを実行できます。例:$ git clone --depth 1 https://github.com/evalempire/perl5i.git $ cloc perl5i $ rm -rf perl5i 言語学者結果をgithubの言語パーセンテージと正確に一致させるには、 _ cloc _ の代わりに linguist をインストールしてみてください。 そのreadme に従って、gem install linguistを実行してからlinguistを実行する必要があります。うまく動かなかった( issue#2223 )。