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

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

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

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

アイデアは?

ベストアンサー1

2023年5月更新:

新しいコード検索とコードビューが一般公開されました(2023年5月)

ホーリードラゴンコメントただし、最初に GitHub にサインインする必要があります)

昨年のGitHub Universeで、私たちはGitHubのコード検索とナビゲーションエクスペリエンスの完全な再設計、当社のまったく新しいコード検索エンジンゼロから構築しました。
そして2月に発表しましたパブリックベータ版

本日、この機能をすべての GitHub ユーザーに展開します。

https://i0.wp.com/user-images.githubusercontent.com/78169714/236855021-b5f60b03-78e4-46ac-a89d-7712cfb85aca.png?ssl=1 -- コード検索結果のスクリーンショット

ぜひご覧くださいブログ投稿GitHubの新しいコード検索とコードビューがコードの検索、ナビゲート、理解にどのように役立つかについて詳しくご覧ください。
フィードバックがある場合は、フィードバックディスカッション


2021年12月更新:検索は再び改善されました、部分文字列の一致、特殊文字、または正規表現をサポートし、正確な文字列を検索します。

正規表現

しかし、cs.github.com、まだベータ版です(順番待ちリストが適用されます)


2013年1月更新:新しい検索機能が登場しました!、 に基づくエラスティックサーチ:

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

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

あげる:

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

他にも検索の例はたくさんありますが、フォロワーについて、 またはフォークで、 または...


2012 年 7 月の更新(Lucene 検索と貧弱なコード インデックスの古い時代、壊れた GUI が組み合わさって、アーカイブとしてここに保存されています):

検索(Solrクエリ構文) はより許容度が高くなり、デフォルトの検索セレクタ「すべて」Invalid search query. Try quoting it.を使用するときに、恐ろしい「 」が表示されなくなりました:)

(私たちはみんなティム・ピーズ、彼の目的の一つは「GitHubのすべてのプロパティの検索エクスペリエンスの改善に向けたハッキン​​グ"、 そして私はStack Overflowのこの質問について言及しました当時 ;) )

以下は、Ruby コード内での grep の図です。リポジトリとユーザーを検索しますが、最初に検索したかったもの、つまりコードも検索します。

GitHub の検索結果の自由度が向上


前回の質問に対する回答とイラスト(2012年9月→2012年3月)

あなたは高度な検索 GitHub フォーム:

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

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

コード検索:

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

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

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

優れた検索セレクター


GitHub で非常に 役に立たないのは次の点です:

  • 正しい検索セレクタ(ここでは「 」)を入力し忘れるとCode、エラーメッセージが表示されます:
    Invalid search query. Try quoting it.

コード ファイラーのセレクターが間違っています

  • エラー メッセージはまったく役に立ちません。
    " " をいくら入力しても、quoting itこのエラーは解決しません。

  • このエラー メッセージが表示されると、検索セレクタ(" Repositories"、" Users"、または " Language") と (正しい) 検索フィルター(ここでは " repo:") の正しい関連付けを思い出させるセクションが表示されなくなります。
    さらに試行しても、これらの関連付け (セレクタとフィルター) は表示されません。上記のエラー メッセージのみが表示されます...
    これらの配列を復元する唯一の方法は、" " アイコンをクリックすることですAdvance Search

GitHub の詳細検索アイコン

  • Everythingデフォルトの「 」検索セレクターは、実際にはすべての検索フィルターに対して間違ったものです。ただし「 」は除きます... (「 」を使用すると、検索フィルター「 」で実際に機能する検索セレクターを選択できると想像/想定できますが、そうではありません。それは簡単すぎます)language:
    Everythingrepo:

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

検索セレクタが間違っています


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

  • 「 」をクリックしAdvanced Search、フィルターのセクションをざっと見て、使用したいフィルターを見つけます: 「repo:
  • 最初の詳細検索「repo:jruby/jruby stat」を実行しますが、デフォルトの検索セレクター「Everything」を使用します
    => FAIL! (関連付け「セレクター-フィルター」を表示する配列は消えます)
  • 「検索」セレクターに気づいたら、最初の選択肢「Repositories」(「わあ!リポジトリ内を検索したいんだ...」)を選択してください
    => FAIL
  • Users落胆したあなたは、もう一度試すために、セレクターを見ることもなく、次のセレクターの選択肢 (ここでは「 」) を選択します...
    => FAIL!
  • 「やっちゃった、GitHub 検索が壊れてる!もうやめてやる!」
    ...
    (GitHub の高度な検索は実際には壊れてない。壊れているのは GUI だけだ...)

まとめると、OPが言うように「Githubプロジェクトのコード内で何かをgrepしたい」場合、ベン・ハンフリーズ「 」検索セレクタを選択することを忘れないでくださいCode...

おすすめ記事