Githubプロジェクト内のコードを検索する


272

Githubプロジェクトのコード内で何かをgrepする方法はありますか?

ソースをプルしてローカルでgrepすることはできましたが、それがWebインターフェイスまたはサードパーティの代替手段で可能かどうか疑問に思っていました。

アイデア?


code.ohloh.netもチェックアウト:)
obimod 2013

Java / Scalaリポジトリの場合は、Codotaセマンティックコード検索を
drorw

回答:


255

2013年1月の更新:新しい検索が到着しました!elasticsearch.orgに基づく:

rubyリポジトリ内でのstatの検索はと表現されstat repo:ruby/rubyTMで動作するようになります。
(リポジトリ名は大文字と小文字が区別されません:test repo:wordpress/wordpressと同じ結果を返しますtest repo:Wordpress/Wordpress

ここに画像の説明を入力してください

あげる:

ここに画像の説明を入力してください

そして、あなたはフォロワーフォーク、または... に基づい検索の他の多くの例を持っています


2012年7月の更新(Luceneの検索と貧弱なコードインデックス作成の昔、壊れたGUIと組み合わせて、アーカイブのためにここに保持):

検索(SolrQuerySyntaxに基づく)はより寛容になりInvalid search query. Try quoting it.デフォルトの検索セレクター「Everything」を使用すると恐ろしい「」がなくなりました:)

(私は彼の目的の1つである「すべてのGitHubプロパティの改善された検索エクスペリエンスへのハッキング」を持っていたTim Peaseよりもすべてができると思います、そして私はこの時にこのスタックオーバーフローの質問に言及しました;))

これはrubyコード内のgrepの図です。これはリポジトリとユーザーを検索しますが、最初に検索したいもの、つまりコード検索します。

GitHubのより寛容な検索結果


最初の回答と前号の説明(2012年9月=> 2012年3月)

高度な検索GitHubフォームを使用できます。

  • を選択CodeするRepositoriesUsers、ドロップダウンから
  • その検索タイプにリストされている対応するプレフィックスを使用します

たとえば、repo:username/repo-nameディレクティブを使用して、検索をコードリポジトリに限定します。
最初の「Advanced Search」ページには、次のセクションが含まれています。

コード検索:

コード検索は、GitHubで公開されているすべてのコードを調べます。次の条件でフィルタリングすることもできます。

  • 言語 language:
  • リポジトリ名(ユーザー名を含む) repo:
  • ファイルパス path:

したがって、「Code」検索セレクターを選択すると、リポジトリ内のテキストに対するクエリgreppingが機能します。

良い検索セレクター


何が信じられないほど 役に立たない GitHubのからすると、その次のとおりです。

  • 適切な検索セレクタ(ここでは " Code")を配置するのを忘れると、エラーメッセージ
    " Invalid search query. Try quoting it."が 表示されます

コードファイラーの誤ったセレクター

  • エラーメッセージはまったく役に立ちません。
    quoting it」の数を増やしても、このエラーは解消されます。

  • エラーメッセージが表示されると、検索セレクター( " Repositories"、 " Users"、 " Language")と(右)検索フィルター(ここでは " repo:")の間の正しい関連付けを通知するセクションが表示されなくなります。
    それ以上の試みを行っても、それらの関連付け(selectors-filters)は表示されません。上記のエラーメッセージのみ...
    これらの配列を取得する唯一の方法は、「Advance Search」アイコンをクリックすることです。

GitHubの事前検索アイコン

  • Everythingデフォルトの " "検索セレクターは、実際にはすべての検索フィルターに対して間違ったセレクターです。「」を除いて... (「」は検索フィルター「」で実際に機能する検索セレクターを選択するのに役立ちますが、それは簡単ではありません。)language:
    Everythingrepo:

  • Advance Search」フィールドだけで必要な検索セレクターを指定することはできません。
    language:ただし、「Search Language」は「Search for」「タイプ」のすぐ下にある別のコンボボックスですが、「」で使用できます...)

間違った検索セレクター


したがって、ユーザーのエクスペリエンスは通常次のようになります。

  • Advanced Search」をクリックして、フィルターのこれらのセクションを一目見て、使用したいものに気づきます:「repo:
  • 最初の高度な検索 " repo:jruby/jruby stat"を行いますが、デフォルトの検索セレクタ " Everything"
    => FAIL!(そして "Selectors-Filters"の関連付けを表示する配列はなくなりました
  • 「Search for」セレクターが気になることに気づいたら、最初の選択肢「Repositories」を選択してください(「Dah!リポジトリ内を検索したい...」)
    => FAIL
  • 落ち込んで、セレクターの次の選択肢(ここでは " Users")を選択します。セレクターを見ることさえせずに、もう一度試してみるだけです...
    => FAIL
  • 「これを外してください、GitHub検索が壊れています!私はここにいますよ!」
    ...
    (GitHubの詳細検索は実際には機能していません。GUIのみが...)

つまり、「Githubプロジェクトのコード内で何かをgrepする」場合、OP Ben Humphreysとして、「Code」検索セレクターを選択することを忘れないでください。


本当に、私はrepo:"jruby/jruby" stat repo:"jruby" stat jruby: statどれもうまくいかなかった
Tom H

@TomH:一見すると、superuser.com
a / 179900/141

1
@DannyStapleまあ、彼らは思えあなたが説明したミッションを見れば、問題を認識するgithub.com/blog/1116-tim-pease-is-a-githubber:「ティムは、最も可能性が高くなります[...]すべてのGitHubプロパティの改善された検索エクスペリエンスをハッキングします。」自分のGitHubのつぶやき(に返信していることを確認してくださいtwitter.com/#!/github/status/197070106768048128私は(行ったように、)twitter.com/#!/VonC_/status/197565733830541313
VonC

9
FWIWリポジトリに検索を制限したときに検索結果が得られなかったため、GitHubに連絡しました。Tim Peaseは、レポインデックスの量に問題があると答えたため、シャードインデックスサーバーに移行しています。すべてのリポジトリがいつ移行されるかについてのETAはありません。
M.ダドリー

3
私はこの回答のアドバイスを使用したばかりであり、それも私にとってはうまくいきますが、1つ注意点があります。GitHibが他の場所で別の方法でリストしている場合でも、リポジトリ名は常に小文字にする必要があります。たとえば、(上記のように[コード]ドロップダウンなどを設定した後)同じ検索を次のように試してください:repo:wordpress / wordpress vs repo:WordPress / WordPress ...最初のものだけが結果を生成します。
ethanpil 2013年

22

最近のプライベートリポジトリには、そのリポジトリを検索するための検索フィールドがあります。

ここに画像の説明を入力してください

不可解なことに、この機能はパブリックリポジトリでは利用できないようです。


1
これは、有料版にアップグレードするための商業的な動きではないのでしょうか。githubのようには聞こえませんが、それでもまだです。
シルヴァン

3
@Sylvainアップグレード後も、パブリックリポジトリの検索フィールドが表示されないため、アップグレードの奨励として行われているとは思われません。代わりに、メインの検索はプライベートリポジトリを含まないインデックスを使用していると思います。プライベートリポジトリに支払うときに機能を失うことはなく、プライベートリポジトリのみを検索する別の方法を追加する必要があったため、追加のテキストフィールド。
avernet、2012

2
すべてのリポジトリのすべてのコード行に検索インデックスがあるオーバーヘッドを想像してください!めちゃくちゃ!それのは、なぜ彼らは唯一のプライベート・レポのためにそれを行う...
ジョニー・ノット

1
検索は、グローバル検索と同じようにヘッダーになりました。
ティブ

20

更新

以下のブックマークレットハックは、XHRの問題とAPIの変更により壊れています。

ありがたいことに、Githubには「A Whole New Code Search」があり、この機能が優れています。


このブードゥー教をチェックアウト:GitHubのコード検索userscript

そこに記載されている指示に従うか、スクリプトや拡張機能でブラウザを膨らませたくない場合は、ブックマークしたユーザースクリプトのバンドルを使用してください。

javascript:(function(){var s='https://github.com/skratchdot/github-code-search.user.js/raw/master/github-code-search.user.js',t='text/javascript',d=document,n=navigator,e;(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)})();doIt('');void('');

上記のソースを新しいブックマークのURLとして保存します。Githubリポジトリを参照し、ブックマークをクリックして、bamページはめ込み、ajaxifiedコードで検索します。

警告 Githubは、レポを検索する前にインデックスを作成する必要があります。

ブックマークレットの前

アブラカダブラ...

後-左端のタブの後の2番目のメニューバーを確認します。ファイル、コミット、ブランチ...

これは、注釈付きECMAScript 5.1仕様リポジトリからのサンプル検索です。

注釈付きECMAScript 5.1仕様リポジトリーでのサンプル検索


プラグイン(Chrome)を使用すると、scratchdot / github-code-searchリポジトリでは正常に機能しますが、他のリポジトリでは機能しません。
forforf

リポジトリのホームページで機能するはずです。おそらく別のページから試しているのでしょうか?サンプル検索のスクリーンショットを別のリポジトリに投稿しました。
2012

ああ!私は実際にそれらの検索が失敗した可能性がある理由を発見しました:リポジトリはインデックス作成のためにその順番を待つ必要があります。膨大な数のアクティブなリポジトリがあることを考えると、少し時間がかかると思います。
2012

2
@ user456584ニュースです。GoogleMozillaにも知らせたいと思うかもしれません。
2012年

2
プラグインが機能しない理由を理解しました。これは、レポ名を小文字にする必要があるためです。(上記のVonCの回答に対する私のコメントを参照してください)。私はすでにGitHubでパッチを提出しました。うまくいけば、元の作者がそれを見ることができます。 github.com/skratchdot/github-code-search.user.js/pull/5
ethanpil

10

@VonCの回答は一部のリポジトリで機能しますが、残念ながら多くのリポジトリでは現在使用できません。Githubは単にそれらをインデックス化していません(@emddudleyによって最初にコメントされたように)。彼らは彼らのウェブサイトのどこにもこれを述べていませんが、あなたがサポートを求めればあなたに教えてくれます:

From:Tim Pease
新しくプッシュされたコードをcodesearchインデックスに追加するのをやめました。コードの量が現在の検索インデックスを上回り、よりスケーラブルな検索アーキテクチャへの移行に取り組んでいます。ご迷惑をおかけして申し訳ありません。この新しい検索インデックスがいつ稼働するかについての見積もりはありませんが、準備ができたらブログ投稿が公開されます(https://github.com/blog)。

不愉快なことに、結果の欠如(これも悪いクエリからである可能性があります)以外に、どのリポジトリーが索引付けされていないかを知る方法はありません。

また、彼らがブログを書くのを待つ(またはここでSOを見る)以外に、この問題を追跡する方法はありません。

From:Tim Pease
私たちの課題トラッカーは内部にあると思いますが、新しい検索インデックスが稼働し始めたらすぐに通知できます。


一部の検索結果は省略される可能性があることを少なくとも言及する必要があります。コードをリファクタリングし、そこにあるがGitHubで言及されていないコードのオカレンスを検索すると、それは完全にうんざりします。
Nicodemuz、2016年


0

私は無料でGitHubのリポジトリのソースコードの内部を検索Sourcegraphクローム拡張 ...しかし、私ダウンロードクロームまず、私のような、他のブラウザにはかかわらず、それをサポートして知っていた-と多分ちょうどのみ- Firefoxの。

私はざっと目を通したのSourceForgeのChrome拡張ドキュメント、その後も私はいくつかの読むことによって、GitHubの提供する検索エンジン自体にディレクトリ名を検索するために必要なものだけを見てドキュメントを検索するのGithubのコードベースを

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.