LoginSignup
270
251
はじめての記事投稿

【GitHub】コード検索機能なんで使ってないの?

Last updated at Posted at 2023-07-03

はじめに

開発をするとき、GitHubのホームからPRやissueを毎回ボタンポチポチやスクロールをして頑張って開いてませんか?

また、開発をするときなどに、『この技術はどう使うん?』と思って毎回ググってはいませんか?(GPT先生がいますが。。。🥺)

そんなことはもうやめて、GitHubの検索機能を使うべき!!!

ということで、

この記事では、GitHubの検索機能でPRやissue、ソースコードを検索することもいいよ!

ということを伝えます!

以下に記載する内容は以下の記事を参考にしています。

GitHubの自己満tipsもあるよーーーーーーーーーーー😏

GitHubのソースコード検索の仕方

コード検索できること

GitHubコード検索を使用すると、自分のコード、他人のオープンソースコード、チームのコード、コミュニティのコードを検索することができる。

特定のキーワードを持つリポジトリOrganizationの特定のファイルやissuesに素早くジャンプできるのが、生産性が上がり、嬉しさポイント!!!!😁

検索場所

1. GitHub コマンドパレット : GitHub で ⌘ + k (Mac) / ⌃ + k (Windows)

⌘ + k (Mac) / ⌃ + k (Windows)でコマンドパレットを開くことができる

  • この画面がでできて検索開始!
    スクリーンショット 2023-06

公式ドキュメント GitHub コマンドパレット

2. 通常検索(GitHub Code Search) : https://github.com/search

コード内の関数やクラスの定義を、symbol: qualifier形式で検索できる。

2パターンの検索方法がある。

  • a. GitHub.com の上部のナビゲーションにある検索バーをクリック!
    スクリーンショット 2023-06

  • b. ブラウザでgithub searchで検索
    スクリーンショット 2023-06

公式ドキュメント GitHub Code Searchの使用

3. アドバンス検索 : https://github.com/search/advanced

  • GUIでサクッと検索できる!
    スクリーンショット 2023-06

検索対象

以下が検索できるよ〜

  • ユーザー
  • リポジトリ
  • トピック
  • issues と PR
  • ディスカッション
  • コード
  • コミット
  • パッケージ
  • Wiki

コード検索時の制約

ソースコードの検索には制約があります。
普通に検索する上ではあまり関係なさそうです🤔

The current limitations on indexed code are:

  • Vendored and generated code is excluded
  • Empty files and files over 350 KiB are excluded
  • Lines over 1,024 characters long are truncated
  • Only UTF-8 encoded files are included
  • Very large repositories may not be indexed
  • We currently only support searching for code on the default branch of a repository.

現在の制限は次のとおりです。

  • ベンダー化されたコードと生成されたコードは除外されます
  • 空のファイルと 350 KiB を超えるファイルは除外されます
  • 1,024 文字を超える行は切り捨てられます
  • UTF-8 でエンコードされたファイルのみが含まれます
  • 非常に大きなリポジトリにインデックスを作成できない場合があります

検索での構文

GitHub コマンドパレットでの構文

  • 「#」 issue、プルリクエスト、ディスカッション、プロジェクトを検索する
  • 「!」 プロジェクトを検索する
  • 「@」 ユーザー、組織、およびリポジトリを検索する
  • 「/」 リポジトリスコープ内のファイルを検索する
  • 「>」 コマンドモードに入る
    • New repositoryなどを簡単に作成できる

Command palette beta | GitHub Changelog

通常検索での構文(コード検索)

ソースコード(ファイルの内容)またはファイルのパスがヒットする

http-push

上記のクエリは、
用語 http-push がコード含まれているファイルをすべて検索します。
加えて、用語 http-push がコードに含まれていなくても、 ファイル docs/http-push.txt と一致して、ヒットすることもある。

Q : 例えば、DockerでGoを動かしたいんだけど、どう書くんだっけ??

FROM golang:1.20-alpineで検索した結果がこちら(例)

スクリーンショット 2023-06

検索でヒットしたコードを読んで、勉強🤔

GitHub上には、いろんなコードがあるんだから、脳死で、Docker Goでググるのはやめにしませんか??(スターの多いリポジトリが信頼度高めかも)

通常検索での構文(リポジトリ検索)

1. >>=

ある値より大きい、以上、より小さい、および以下の値を検索できる

スターが20個より多い新卒研修の”キーワード”が入ったリポジトリ検索
スクリーンショット 2023-06
新卒研修 stars:>20

2. YYYY-MM-DD日付のクエリ

2022 年 1 月 1 日以前に作成された "hackathon" が入ったリポジトリ検索

スクリーンショット 2023-06
hackathon created:>2022-01-01

3. is:issueis:pr

自分がアサインしたpull requestsを検索

スクリーンショット 2023-06
is:pr assignee:@me

自分がアサインしたissuesを検索

スクリーンショット 2023-06
is:issue assignee:@me

  • 実際の調べ方
    自分がアサインしたpull requestsで hogeのキーワードが入っているPRを検索
    is:pr assignee:@me hoge

    このpull requestsで検索でヒットしたものを確認!!
    スクリーンショット 2023-06

4. saved:

毎回、こんな長いクエリを毎回検索時に打ってられないと思いましたが、、、しかし

saved: で検索クエリ(検索条件)を保存できる

〜試しに、自分がアサインしたpull requests検索する検索クエリをやってみる〜

step1 is:pr assignee:@meで検索

step2 右上のSaveボタンをクリック
スクリーンショット 2023-06
step3 Nameを決めて、Create saved search
スクリーンショット 2023-06
そうすれば、検索のSaved queriessaved:クエリが登場!!
スクリーンショット 2023-06

5. 他には... こんなクエリがあるよー

  • path:パス
  • 検索結果のソート
  • 空白のあるクエリに引用符を使う
  • 特定のキーワードを含む結果を除外する
  • 修飾子に一致する結果を除外する

公式ドキュメント 検索構文を理解する

検索結果のソートと絞り込み

ソートについて

クエリでもソートできるが

右上に検索結果のソートのドロップダウンリストからソートしたほうがいい

スクリーンショット 2023-06-19 午後00.54.16 午前.png

絞り込みについて

ここから言語の絞り込みできます〜

スクリーンショット 2023-06

UIが新しくなって、RepositoriesやPaths、Advanced(Owner, Symbol, Exclude archived)の絞り込みがGUIでできるように!

UIが変わったので、調べやすくなったかも

UIが変わったので、違和感しかないですが、、、

PRやissueが調べやすくなっとるじゃん!!!

左から、issue, PR, notificationsらしいです!
スクリーンショット 2023-06

個人的な効率の良い調べ方

長々と説明したが、、、

コマンドパレットで、issueやPRを検索し、日々の開発の生産性を上げ

  • issue、PRを素早く検索できる(ボタンをポチポチするのは卒業)
  • リポジトリ検索はかなり早く検索できる

通常検索で、オープンソースコードやチームのリポジトリの検索に使う

  • 意外と自分が得たい情報かつ、+アルファで情報を得ることができる

TIPS

Gitに関して

  • サル先生のGit入門

  • GitHub CLIのコマンドおすすめ(gh pr createらへんよく使います!)

  • git-tips

  • issue と Pull Request (commit) の紐づけとか、、、その他

  • GitHub 通知

  • lazygit(コミットログを楽に整形できるのが最強!!!!)

  • GitHubのプルリクエストのdiffやpatchをして差分を見る

  • GitHubプロフィール(出来るエンジニア感だそう💪)

  • GitHubのページで「.」を打てば起動する。ブラウザで、github.devで検索しても開けるよ〜〜

  • Codespaces(GitHub が Visual Studio Code の環境をホストしてくれるサービス)

  • GitHub Copilot(ゴイスーです👀)

  • Trending GitHub Repositories の bot(最もスターの多い GitHub リポジトリが知れる)

Trending GitHub Repositories

まとめ

どれが正しいとかは全くないですが、開発者にとっては、日々のGitHubの操作は、直接仕事の成果とはあまり結び付かず効率化できるものが多いと思います。

自分のリポジトリ内やチームのリポジトリ内で、「先日のissueや新しく作成したPRどこかなー💦」と探す時間を取られるぐらいだったら、検索をバシッと決め、効率化し、たくさんコードを書くべきだと駆け出しエンジニアながら、学んできました。

そんな時に、GitHubの検索機能は素晴らしく、生産性を上げてくれると思います!!!

また、検索機能を使って他の開発者さんなどのオープンソースのコードを検索してみると、多くの気づきがありそうです🤔

実際にGitHubの検索機能は、

  • コマンドパレットで、自分のリポジトリ内やチームのリポジトリ内issueやPRを検索
  • 通常検索で、オープンソースコードの検索

すると便利かもですね!!

その他、GitやGitHubには面白い機能などがあるので、この記事をきっかけに色々調べてみると面白いかもですね〜

270
251
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
270
251