GitHubで上手いことコードを検索したい

Githubの検索を使いこなせてない

常日頃お世話になっているGitHub。ただリポジトリを管理するだけじゃもったいない!と思い立って、Alfreadで手軽に検索できるように設定φ(..) が、コードが大量にありすぎていまいち欲しい情報にたどり着けない!

ということで、GitHubに大量にあるコードから自分が欲しい情報を手に入れるためGitHub Helpに書いてある検索のコマンドを抜粋してまとめてみた。

f:id:kai1233:20181030181037p:plain Searching code - User Documentation

前提として

GitHub Helpにある注意書き

  • サインインしていないとすべてのパブリックなリポジトリを検索できません
  • フォークしたリポジトリはフォーク元よりスターを獲得していないとインデックスされない
    • もし検索したいときは fork:true or fork:only
  • デフォルトのブランチのみがインデックスされる
  • 384KB以下のファイルのみ検索可能
  • ファイル数が500,000個未満のリポジトリのみ検索可能
  • オプションのfilename を伴わない限り、何かしらのキーワードがないと検索できない
  • 検索結果には最大二箇所しか1つのファイルから表示しないので、検索結果に表示された部分だけで判断しないでね
  • 以下のワイルドカードはキーワードとしては使えません

. , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]

コマンドたち

ファイルの場所から検索する

path:/

octocat filename:readme path:/ はルートに位置する"octocat"を含むreadmeのみがヒットする。

path:DIR

form path:cgi-bin language:perlcgi-binディレクトリ内のformを含むperlで書かれたファイルがヒットする。

path:PATH/TO/DIR

console path:app/public language:javascript はapp/publicディレクトリ以下でconsoleを含むjavascriptファイルがヒットする。

言語で検索

language: LANGUAGE

display language:scss はdisplayを含むSCSSで書かれたファイルがヒットする。

サイズで検索

size:n

function size:>10000 language:python はfunctionを含むPythonで書かれた10KB以下のファイルがヒットする。

ファイル名で検索

filename:FILENAME

filename:views.py はviews.pyのみがヒットする。

拡張子で検索

extension:EXTENSION

form path:cfi-bin extension:pm はformを含むcgi-bin以下の.pmファイルがヒットする。

おわりに

このくらいの量なら使いこなせそう。これらを駆使して、参考のコードを探したり、良さげな変数名を見つけたりしてみよっと。リポジトリの検索はまたいろいろあるらしい。(スター数で検索とか)いつかリポジトリもじっくり見てみよう。それでは、よいGitHubライフを。