# ファイルの表示と理解

ファイルの内容を調べ、経時的に変更を追跡して、新しいコードベースとその進化を理解します。

GitHub には、生の内容の表示、特定の行への変更のトレース、ファイルの内容の経時的な進化の探索を行うツールがあります。 これらの分析情報によって、コードが開発された方法、現在の目的、その構造が明らかになり、効果的に貢献するのに役立ちます。

## 生ファイルの内容を表示またはコピーする

生のビューを使用すると、スタイルを設定せずにファイルの生のコンテンツを表示またはコピーできます。

1. GitHub で、リポジトリのメイン ページに移動します。

2. 表示するファイルをクリックします。

3. ファイル ビューの右上隅にある **\[未加工]** をクリックします。

   ![ファイルのスクリーンショット。 ヘッダーには、\[未加工\] というボタンが濃いオレンジ色の枠線で囲まれています。](/assets/images/help/repository/raw-file-button.png)

4. 必要に応じて、生ファイルの内容をコピーするには、ファイル ビューの右上隅にある **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copy" aria-label="Copy raw content" role="img"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg>** をクリックします。  RAW ファイルをダウンロードするには、**\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-download" aria-label="Download raw file" role="img"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg>]** をクリックします。

## ファイルの行ごとのリビジョン履歴の表示

Blame ビュー内では、ファイル全体のリビジョン履歴を 1 行ずつ表示できます。

> \[!TIP]
> コマンド ラインでは、`git blame` を使用してファイル内の行のリビジョン履歴を表示することもできます。 詳細については、[Git`git blame` のドキュメント](https://git-scm.com/docs/git-blame)を参照してください。

1. GitHub で、リポジトリのメイン ページに移動します。

2. クリックして、表示したい行の履歴のファイルを開きます。

3. ファイルの内容の上にある **\[Blame]** をクリックしてください。 このビューには、1 行ずつのリビジョン履歴とコミットごとに区切られたファイル内のコードが表示されます。 各コミットには、作成者、コミットの説明、コミット日が一覧表示されます。

4. 特定のコミットの前にあるファイルのバージョンを表示するには、<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-versions" aria-label="View blame prior to this change" role="img"><path d="M7.75 14A1.75 1.75 0 0 1 6 12.25v-8.5C6 2.784 6.784 2 7.75 2h6.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14Zm-.25-1.75c0 .138.112.25.25.25h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25h-6.5a.25.25 0 0 0-.25.25ZM4.9 3.508a.75.75 0 0 1-.274 1.025.249.249 0 0 0-.126.217v6.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.75 1.75 0 0 1 3 11.25v-6.5c0-.649.353-1.214.874-1.516a.75.75 0 0 1 1.025.274ZM1.625 5.533h.001a.249.249 0 0 0-.126.217v4.5c0 .09.048.173.126.217a.75.75 0 0 1-.752 1.298A1.748 1.748 0 0 1 0 10.25v-4.5a1.748 1.748 0 0 1 .873-1.516.75.75 0 1 1 .752 1.299Z"></path></svg> をクリックします。 または、特定のコミットの詳細を表示するには、コミット メッセージをクリックします。

   ![blame ビューでのコミットのスクリーンショット。 コミット メッセージとバージョン アイコンが濃いオレンジで囲まれています。](/assets/images/help/repository/code-view-blame-commit-options.png)

5. 生コード ビューに戻すには、ファイルの内容の上にある **\[コード]** をクリックします。
   * マークダウン ファイルを表示している場合は、ファイルの内容の上にある **\[プレビュー]** をクリックして、Markdown の書式設定が適用されたビューに戻ることもできます。

## \[変更履歴] ビューのコミットを無視する

リポジトリのルート ディレクトリ内に存在しなければならない、`.git-blame-ignore-revs` ファイルで指定されたリビジョンはすべて、Git `git blame --ignore-revs-file` の構成設定を使用して、\[変更履歴] ビューに表示されなくなります。 詳細については、Git ドキュメントにある「[`git blame --ignore-revs-file`](https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revs-fileltfilegt)」を参照してください。

1. リポジトリのルート ディレクトリに `.git-blame-ignore-revs` という名前のファイルを作成します。

2. 変更履歴ビューから除外したいコミットハッシュをそのファイルに追加します。 コメントを含め、次のようにファイルを構成することをお勧めします。

   ```shell
   # .git-blame-ignore-revs
   # Removed semi-colons from the entire codebase
   a8940f7fbddf7fad9d7d50014d4e8d46baf30592
   # Converted all JavaScript to TypeScript
   69d029cec8337c616552756310748c4a507bd75a
   ```

3. 変更をコミットしてプッシュしてください。

変更履歴ビューでは、コミットによって**新しい行が追加**されたり、既存の行が変更されたりした場合、リビジョンは除外されます。 ある行に対する最後の**変更**がそのコミットである場合、それは引き続き blame 内に表示されます。 ".git-blame-ignore-revs でリビジョンを無視していることを示すバナーが表示され、一部のコミットが隠されている可能性があります。"

<!--Page used for the screenshots below: https://github.com/electron/electron/blame/main/lib/browser/ipc-main-internal.ts -->

![ファイルに対応する blame ビューのスクリーンショット。 青い \[Ignoring revisions\] バナーには、オレンジ色の枠線で囲まれた ".git-blame-ignore-revs" へのリンクが含まれています。](/assets/images/help/repository/blame-ignore-revs-file.png)

これは、いくつかのコミットがコードに広範な変更を加える場合に役立ちます。 このファイルは、ローカルで `git blame` を実行する場合にも使用できます。

```shell
git blame --ignore-revs-file .git-blame-ignore-revs
```

ローカル Git を構成して、そのファイルのリビジョンを常に無視することもできます。

```shell
git config blame.ignoreRevsFile .git-blame-ignore-revs
```

## \[変更履歴] ビューで `.git-blame-ignore-revs` をバイパスする

ファイルの \[変更履歴] ビューに **\[Ignoring revisions in .git-blame-ignore-revs]\(.git-blame-ignore-revs でリビジョンを無視する)** と表示されている場合でも、`.git-blame-ignore-revs` をバイパスして通常の \[変更履歴] ビューを表示できます。 URL で `~` を SHA に追加すると、 **\[.git-blame-ignore-revs でリビジョンを無視する]** バナーが消えます。

## Copilot によるファイルの理解

> \[!NOTE] GitHub Copilotにアクセスする必要があります。 詳しくは、「[GitHub Copilotとは](/ja/copilot/get-started/what-is-github-copilot#get-access)」をご覧ください。

また、Copilot を使って、ファイル内の特定のコード行について質問することもでき、コードがどのように動作するのかを理解するのに役立ち、新しい問題が発生するリスクを軽減できます。

1. GitHub で、リポジトリに移動し、ファイルを開きます。

2. 次のいずれかの操作を行います。
   * **ファイル全体**について質問するには、ファイル ビューの右上にある \[Copilot] アイコン (<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copilot" aria-label="copilot" role="img"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>) をクリックします。

     ![ファイル ビューの上部にある Copilot ボタンのスクリーンショット。ボタンは濃いオレンジ色の枠線で囲まれています。](/assets/images/help/copilot/copilot-button-for-file.png)

   * ファイル内の**特定の行**について質問するには:

     1. 質問したい最初の行の行番号をクリックし、<kbd>Shift</kbd> キーを押しながら選択する最後の行の行番号をクリックします。
     2. 選んだ行について独自の質問をするには、選択部分の右側にある \[Copilot] アイコン (<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copilot" aria-label="copilot" role="img"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>) をクリックしてから、GitHub Copilot Chat パネルに質問を入力します。
     3. 定義済みの質問をするには、Copilot アイコンの横にあるドロップダウン メニューをクリックして、いずれかのオプションを選びます。

     ![選択したコードの右側にある Copilot ボタンのスクリーンショット。ボタンは濃いオレンジ色の枠線で囲まれています。](/assets/images/help/copilot/copilot-buttons-inline-code.png)

3. \[Copilot] アイコンをクリックしたら、チャットパネルの下部にある \[Ask Copilot] (Copilot に質問する) ボックスに質問を入力し、<kbd>Enter</kbd> キーを押します。

   たとえば、ファイル全体について質問する場合は、次のように入力できます。

   * `Explain this file.`
   * `How could I improve this code?`
   * `How can I test this script?`

   特定の行について質問する場合は、次のように入力できます。

   * `Explain the function at the selected lines.`
   * `How could I improve this class?`
   * `Add error handling to this code.`
   * `Write a unit test for this method.`

   Copilot は、パネル内のリクエストに応答します。

4. 必要に応じて、質問を送信した後、テキスト ボックス内の <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-square-fill" aria-label="Stop" role="img"><path d="M5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0 1 10.25 12h-4.5A1.75 1.75 0 0 1 4 10.25v-4.5C4 4.784 4.784 4 5.75 4Z"></path></svg> をクリックして回答を停止できます。

5. フォローアップの質問をして、会話を続けることができます。 たとえば、「tell me more」(もっと詳しく) と入力することで、Copilot を取得して最新のコメントを展開できます。