Github プロジェクトのコード内で何かを grep で検索する方法はありますか?
ソースを取得してローカルで grep することはできますが、Web インターフェイスまたはサードパーティの代替手段を介してそれが可能かどうか疑問に思っていました。
アイデアは?
ベストアンサー1
2023年5月更新:
新しいコード検索とコードビューが一般公開されました(2023年5月)
(ホーリードラゴンでコメントただし、最初に GitHub にサインインする必要があります)
昨年のGitHub Universeで、私たちはGitHubのコード検索とナビゲーションエクスペリエンスの完全な再設計、当社のまったく新しいコード検索エンジンゼロから構築しました。
そして2月に発表しましたパブリックベータ版。本日、この機能をすべての GitHub ユーザーに展開します。
ぜひご覧くださいブログ投稿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 の図です。リポジトリとユーザーを検索しますが、最初に検索したかったもの、つまりコードも検索します。
前回の質問に対する回答とイラスト(2012年9月→2012年3月)
あなたは高度な検索 GitHub フォーム:
Code
またはドロップダウンから選択しRepositories
てUsers
- その検索タイプにリストされている対応するプレフィックスを使用します。
たとえば、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
。
Everything
デフォルトの「 」検索セレクターは、実際にはすべての検索フィルターに対して間違ったものです。ただし「 」は除きます... (「 」を使用すると、検索フィルター「 」で実際に機能する検索セレクターを選択できると想像/想定できますが、そうではありません。それは簡単すぎます)language:
Everything
repo:
「 」フィールドだけでは、必要な検索セレクターを指定することはできません
Advance Search
。
(ただし、「 」は「 」の「タイプ」コンボ ボックスのすぐ下にある別のコンボ ボックスですlanguage:
が、「 」の場合は指定できます...)Search Language
Search for
したがって、ユーザーのエクスペリエンスは通常次のようになります。
- 「 」をクリックし
Advanced Search
、フィルターのセクションをざっと見て、使用したいフィルターを見つけます: 「repo:
」 - 最初の詳細検索「
repo:jruby/jruby stat
」を実行しますが、デフォルトの検索セレクター「Everything
」を使用します
=>FAIL
! (関連付け「セレクター-フィルター」を表示する配列は消えます) - 「検索」セレクターに気づいたら、最初の選択肢「
Repositories
」(「わあ!リポジトリ内を検索したいんだ...」)を選択してください
=>FAIL
! Users
落胆したあなたは、もう一度試すために、セレクターを見ることもなく、次のセレクターの選択肢 (ここでは「 」) を選択します...
=>FAIL
!- 「やっちゃった、GitHub 検索が壊れてる!もうやめてやる!」
...
(GitHub の高度な検索は実際には壊れてない。壊れているのは GUI だけだ...)
まとめると、OPが言うように「Githubプロジェクトのコード内で何かをgrepしたい」場合、ベン・ハンフリーズ「 」検索セレクタを選択することを忘れないでくださいCode
...