# コード

これらのコード検索修飾子を任意の組み合わせで使用して、 GitHub でコードを検索し、結果を絞り込むことができます。

検索は GitHub 全体を対象としてグローバルに実行するか、特定のリポジトリや organization を対象とすることができます。 詳細については、 [AUTOTITLE を](/ja/enterprise-server@3.22/search-github/getting-started-with-searching-on-github/about-searching-on-github)参照してください。

これらのコード検索の修飾子を使わなければ、コードを検索できません。 リポジトリ、ユーザまたはコミットの特定の修飾子での検索は、コードを検索する場合、うまくいきません。

> \[!TIP]
>
> * この記事には、GitHub.com の Web サイトでの検索例へのリンクが含まれていますが、同じ検索フィルターはあらゆる GitHub プラットフォームで使えます。 リンクされている検索例で、`github.com` を GitHub プラットフォームのホスト名に置き換えてください。
> * 検索結果をさらに改善するために検索修飾子を追加できる検索構文の一覧については、「[検索構文を理解する](/ja/enterprise-server@3.22/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax)」を参照してください。
> * 複数単語の検索用語は引用符で囲みます。 たとえば "In progress" というラベルの問題を検索したい場合は、`label:"in progress"` と検索します。 検索では、大文字と小文字は区別されません。

## コード検索での留意点

コードの検索は複雑なため、検索の実行には一定の制限があります。

* すべてのパブリック リポジトリに渡ってコードを検索するには、GitHub 上の個人用アカウントにサインインしなければなりません。
* フォークの星が親リポジトリよりも多く、フォークされたリポジトリが作成後に少なくとも 1 つのプッシュ コミットを持っている場合にのみ、[フォーク](/ja/enterprise-server@3.22/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)のコードを検索できます。 親リポジトリよりも星の数が少ない、またはコミットがないフォークは、コード検索のためのインデックスが作成され**ません**。 親リポジトリより多くのスターがあり、かつ少なくとも 1 回コミットがプッシュされているフォークを検索結果に含めるには、クエリに `fork:true` または `fork:only` を追加する必要があります。 詳しくは、「[フォーク内を検索する](/ja/enterprise-server@3.22/search-github/searching-on-github/searching-in-forks)」をご覧ください。
* コード検索用にインデックスが作成されるのは *、既定のブランチ* のみです。
* 5 MB を検索できます。
* 検索できるのは、各ファイルの最初の 500 KB のみです。
* 最大 4,000 個のプライベート および内部 リポジトリを検索できます。 これらの 4,000 個のリポジトリは、アクセス権を持つ最初の 10,000 個のプライベート リポジトリ および内部 リポジトリの中で最も最近更新されたものです。
* 検索できるのは、ファイル数が 500,000 未満のリポジトリのみです。
* アーカイブされたリポジトリは検索できません。
* [
  `filename`
  ](#search-by-filename) で検索する場合を除き、ソースコードを検索する際には、必ず 1 つ以上の検索用語を含めなければなりません。 たとえば、[`language:javascript`](https://github.com/search?utf8=%E2%9C%93\&q=language%3Ajavascript\&type=Code\&ref=searchresults) という検索は無効ですが、[`amazing language:javascript`](https://github.com/search?utf8=%E2%9C%93\&q=amazing+language%3Ajavascript\&type=Code\&ref=searchresults) は有効です。
* 検索結果では、同じファイルからは最大で2つの断片が表示されます。ただし、ファイル内にはさらに多くの結果が含まれていることがあります。
* 検索クエリの一部として次のワイルドカード文字を用いることはできません: <code>. , : ; / \ \` ' " = \* ! ? # $ & + ^ | \~ < > ( ) { } \[ ] @</code>。 検索では、これらのシンボルは単に無視されます。

## ファイルの内容またはファイルパスで検索

`in` 修飾子によって、ソースコード ファイル、ファイル パスまたはその両方の内容に検索を限定することができます。 この修飾子を省略した場合、ファイルの内容だけが検索されます。

| 修飾子                                                                                                                                    | 例 |
| -------------------------------------------------------------------------------------------------------------------------------------- | - |
| `in:file`                                                                                                                              |   |
| \[                                                                                                                                     |   |
| **octocat in:file**]\(<https://github.com/search?q=octocat+in%3Afile&type=Code>) は、ファイルの内容に「octocat」が表示されるコードとマッチします。                  |   |
| `in:path`                                                                                                                              |   |
| \[                                                                                                                                     |   |
| **octocat in:path**]\(<https://github.com/search?q=octocat+in%3Apath&type=Code>) は、ファイル パスに「octocat」が表示されるコードとマッチします。                  |   |
| `in:file,path`                                                                                                                         |   |
| \[                                                                                                                                     |   |
| **octocat in:file,path**]\(<https://github.com/search?q=octocat+in%3Afile%2Cpath&type=Code>) は、ファイルの内容またはパスに「octocat」が表示されるコードとマッチします。 |   |

## ユーザーまたは Organization のリポジトリ内の検索

特定のユーザーまたは organization が所有するすべてのリポジトリのコードを検索するには、`user` 修飾子または `org` 修飾子を使います。 特定のリポジトリのコードを検索するには、`repo` 修飾子を使います。

| 修飾子                                                                                                                                                                             | 例 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
| <code>user:<em>USERNAME</em></code>                                                                                                                                             |   |
| \[                                                                                                                                                                              |   |
| **user:defunkt extension:rb**]\(<https://github.com/search?q=user%3Agithub+extension%3Arb&type=Code>) は、@defunkt で終わる <em></em> のコードとマッチします。                                    |   |
| <code>org:<em>ORGNAME</em></code>                                                                                                                                               |   |
| \[                                                                                                                                                                              |   |
| **org:github extension:js**]\(<https://github.com/search?utf8=%E2%9C%93&q=org%3Agithub+extension%3Ajs&type=Code>) は、<em>.js</em> で終わるGitHubのコードと一致します。                          |   |
| <code>repo:<em>USERNAME/REPOSITORY</em></code>                                                                                                                                  |   |
| \[                                                                                                                                                                              |   |
| **repo:mozilla/shumway extension:as**]\(<https://github.com/search?q=repo%3Amozilla%2Fshumway+extension%3Aas&type=Code>) は、@mozilla で終わる <em></em> の shumway プロジェクトのコードとマッチします。 |   |

## ファイルの場所での検索

リポジトリの特定の場所に表示されているソースコードを探すには、`path` 修飾子を使います。 リポジトリのルート レベルにあるファイルを検索するには、`path:/` を使います。 または、ディレクトリやそのサブディレクトリ内に存在しているファイルを検索するには、ディレクトリ名もしくはディレクトリへのパスを明示してください。

| 修飾子                                                                                                                                                                                                                                    | 例 |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
| <code>path:/</code>                                                                                                                                                                                                                    |   |
| \[                                                                                                                                                                                                                                     |   |
| **octocat filename:readme path:/**]\(<https://github.com/search?utf8=%E2%9C%93&q=octocat+filename%3Areadme+path%3A%2F&type=Code>) は、リポジトリのルート レベルにある「octocat」という単語を含む *readme* ファイルとマッチします。                                            |   |
| <code>path:<em>DIRECTORY</em></code>                                                                                                                                                                                                   |   |
| \[                                                                                                                                                                                                                                     |   |
| **form path:cgi-bin language:perl**]\(<https://github.com/search?q=form+path%3Acgi-bin+language%3Aperl&type=Code>) は、<em>cgi-bin</em> ディレクトリまたはそのサブディレクトリ内の「form」という単語を含む Perl ファイルとマッチします。                                            |   |
| <code>path:<em>PATH/TO/DIRECTORY</em></code>                                                                                                                                                                                           |   |
| \[                                                                                                                                                                                                                                     |   |
| \*\*                                                                                                                                                                                                                                   |   |
| `console path:app/public language:javascript`                                                                                                                                                                                          |   |
| \*\*                                                                                                                                                                                                                                   |   |
| ]\(<https://github.com/search?q=console+path%3A%22app%2Fpublic%22+language%3Ajavascript&type=Code>) は、<em>app/public</em> ディレクトリまたはそのサブディレクトリ (<em>app/public/js/form-validators</em> を含む) 内の「console」という単語を含む JavaScript ファイルとマッチします。 |   |

## 言語で検索

コードが書かれた言語で検索することができます。
`language` 修飾子には、言語名またはエイリアスを指定できます。 サポートされている言語とその名前とエイリアスの完全な一覧については、[github-linguist/linguist リポジトリ](https://github.com/github-linguist/linguist/blob/main/lib/linguist/languages.yml)を参照してください。

| 修飾子                                                                                                                                                                                  | 例 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - |
| <code>language:<em>LANGUAGE</em></code>                                                                                                                                              |   |
| \[                                                                                                                                                                                   |   |
| **element language:xml size:100**]\(<https://github.com/search?q=element+language%3Axml+size%3A100&type=Code>) は、XML としてマークされ、ぴったり 100 バイトの「element」という単語を含むコードとマッチします。              |   |
| <code>language:<em>LANGUAGE</em></code>                                                                                                                                              |   |
| \[                                                                                                                                                                                   |   |
| **display language:scss**]\(<https://github.com/search?q=display+language%3Ascss&type=Code>) は、SCSS としてマークされ、「display」という単語を含むコードとマッチします。                                            |   |
| <code>language:<em>LANGUAGE</em></code>                                                                                                                                              |   |
| \[                                                                                                                                                                                   |   |
| **org:mozilla language:markdown**]\(<https://github.com/search?utf8=%E2%9C%93&q=org%3Amozilla+language%3Amarkdown&type=Code>) は、Markdown としてマークされているすべての @mozilla のリポジトリのコードとマッチします。 |   |

## ファイルサイズで検索

コードが存在するファイルのサイズによってソースコードを検索するには、`size` 修飾子を使います。
`size` 修飾子は[より大きい修飾子、より小さい修飾子、および範囲の修飾子](/ja/enterprise-server@3.22/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax)を使用して、コードが見つかったファイルのバイト サイズに基づいて結果をフィルタリングします。

| 修飾子                                                                                                                                                                                         | 例 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
| <code>size:<em>n</em></code>                                                                                                                                                                |   |
| \[                                                                                                                                                                                          |   |
| **function size:>10000 language:python**]\(<https://github.com/search?q=function+size%3A%3E10000+language%3Apython&type=Code>) は、10 KB を超えるファイル内のPythonで記述された "function" という単語を持つコードと一致します。 |   |

## ファイル名で検索

`filename` 修飾子は、特定のファイル名を持つコード ファイルとマッチします。 ファイルファインダーを使ってリポジトリにあるファイルを表示できます。 詳しくは、「[GitHubでのファイルの検索](/ja/enterprise-server@3.22/search-github/searching-on-github/finding-files-on-github)」をご覧ください。

| 修飾子                                                                                                                                                                                                                | 例 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - |
| <code>filename:<em>FILENAME</em></code>                                                                                                                                                                            |   |
| \[                                                                                                                                                                                                                 |   |
| **filename:linguist**]\(<https://github.com/search?utf8=%E2%9C%93&q=filename%3Alinguist&type=Code>) は、「linguist」という名前のファイルとマッチします。                                                                                 |   |
| <code>filename:<em>FILENAME</em></code>                                                                                                                                                                            |   |
| \[                                                                                                                                                                                                                 |   |
| **filename:.vimrc commands**]\(<https://github.com/search?q=filename%3A.vimrc+commands&type=Code>) は、「commands」という単語を含む *.vimrc* ファイルとマッチします。                                                                      |   |
| <code>filename:<em>FILENAME</em></code>                                                                                                                                                                            |   |
| \[                                                                                                                                                                                                                 |   |
| **filename:test\_helper path:test language:ruby**]\(<https://github.com/search?q=minitest+filename%3Atest_helper+path%3Atest+language%3Aruby&type=Code>) は、*test* ディレクトリ内の *test\_helper* という名前の Ruby ファイルとマッチします。 |   |

## ファイルの拡張子で検索

`extension` 修飾子は、特定のファイル拡張子を持つコード ファイルとマッチします。

| 修飾子                                                                                                                                                                                         | 例 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
| <code>extension:<em>EXTENSION</em></code>                                                                                                                                                   |   |
| \[                                                                                                                                                                                          |   |
| **form path:cgi-bin extension:pm**]\(<https://github.com/search?q=form+path%3Acgi-bin+extension%3Apm&type=Code>) は、<em>cgi-bin</em> の下の「form」という単語を含み <em>.pm</em> というファイル拡張子を持つコードとマッチします。 |   |
| <code>extension:<em>EXTENSION</em></code>                                                                                                                                                   |   |
| \[                                                                                                                                                                                          |   |
| **icon size:>200000 extension:css**]\(<https://github.com/search?utf8=%E2%9C%93&q=icon+size%3A%3E200000+extension%3Acss&type=Code>) は、.css で終わり「icon」という単語を含む 200 KB を超えるファイルとマッチします。       |   |

## 参考資料

* [検索結果をソートする](/ja/enterprise-server@3.22/search-github/getting-started-with-searching-on-github/sorting-search-results)
* [フォーク内を検索する](/ja/enterprise-server@3.22/search-github/searching-on-github/searching-in-forks)