# Anzeigen und Verstehen von Dateien

Untersuche Dateiinhalte und verfolge Änderungen im Laufe der Zeit, um eine neue Codebasis und ihre Entwicklung nachzuvollziehen.

GitHub bietet Tools zum Anzeigen von Rohinhalten, zum Verfolgen von Änderungen an bestimmten Zeilen und zum Untersuchen der Weiterentwicklung des Inhalts einer Datei im Laufe der Zeit. Diese Erkenntnisse zeigen, wie der Code entwickelt wurde, seinen aktuellen Zweck und seine Struktur, wodurch du effektiver zum Code beitragen kannst.

## Anzeigen oder Kopieren des Rohdateiinhalts

Mit der unformatierten Ansicht kannst du den rohen Inhalt einer Datei ohne Formatierung anzeigen oder kopieren.

1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

2. Klicke auf die Datei, die du anzeigen möchtest.

3. Klicke in der oberen rechten Ecke der Dateiansicht auf **Rohformat**.

   ![Screenshot einer Datei. In der Kopfzeile befindet sich eine Schaltfläche mit der Bezeichnung „Roh“, mit einem dunkelorangenen Rand.](/assets/images/help/repository/raw-file-button.png)

4. Wenn du optional den Rohdateiinhalt kopieren möchtest, klicke in der oberen rechten Ecke der Dateiansicht auf **<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>** .  Klicke auf **<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>**, um die Rohdatei herunterzuladen.

## Anzeigen des zeilenweisen Revisionsverlaufs für eine Datei

In der Blameansicht kannst du den Revisionsverlauf für eine gesamte Datei Zeile für Zeile anzeigen.

> \[!TIP]
> In der Befehlszeile kannst du auch `git blame` verwenden, um den Revisionsverlauf von Zeilen innerhalb einer Datei anzuzeigen. Weitere Informationen findest du in der [`git blame`-Dokumentation von Git](https://git-scm.com/docs/git-blame).

1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

2. Zum Öffnen klicke auf die Datei, deren Zeilenverlauf du anzeigen möchtest.

3. Klicke oberhalb des Dateiinhalts auf **Blame**. In dieser Ansicht erhältst du einen zeilenbasierten Revisionsverlauf. Dabei ist der Code in einer Datei nach Commit getrennt. Jeder Commit listet den Ersteller, die Commitbeschreibung und das Commitdatum auf.

4. Um Versionen einer Datei vor einem bestimmten Commit anzuzeigen, klicke auf <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>. Alternativ kannst du auf die Commitnachricht klicken, um weitere Details zu einem bestimmten Commit anzuzeigen.

   ![Screenshot eines Commits in der Blame-Ansicht, die Commitnachricht und das Versionssymbol sind dunkelorange umrandet.](/assets/images/help/repository/code-view-blame-commit-options.png)

5. Klicke über dem Dateiinhalt auf **Code**, um zur Rohcodeansicht zurückzukehren.
   * Wenn du eine Markdowndatei anzeigst, kannst du über dem Dateiinhalt zudem auf **Vorschau** klicken, um zur Ansicht mit angewendeter Markdownformatierung zurückzukehren.

## Ignorieren von Commits in der Blame-Ansicht

Alle Überarbeitungen, die in der `.git-blame-ignore-revs`-Datei angegeben sind, die sich im Stammverzeichnis deines Repositorys befinden muss, sind in der Blame-Ansicht mithilfe der Git-Konfigurationseinstellung `git blame --ignore-revs-file` ausgeblendet. Weitere Informationen findest du in der Git-Dokumentation unter [`git blame --ignore-revs-file`](https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revs-fileltfilegt).

1. Erstelle im Stammverzeichnis deines Repositorys eine Datei mit dem Namen `.git-blame-ignore-revs`.

2. Füge die Commithashes hinzu, die du aus der Blame-Ansicht dieser Datei ausschließen möchtest. Es wird empfohlen, die Datei wie folgt zu strukturieren, einschließlich der Kommentare:

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

3. Committe und pushe die Änderungen.

In der Blame-Ansicht werden Revisionen ausgeschlossen, wenn der Commit **neue Zeilen eingeführt** oder vorhandene Zeilen geändert hat. Wenn der Commit der letzte war, der eine Zeile **geändert** hat, wird der weiterhin in Blame angezeigt. Es wird ein Banner „Ignoring revisions in .git-blame-ignore-revs“ angezeigt, das darauf hinweist, dass einige Commits möglicherweise ausgeblendet sind:

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

![Screenshot: Blameansicht der Datei Das blaue Banner „Ignoring revisions“ enthält einen Link zu „.git-blame-ignore-revs“, der orange umrandet ist.](/assets/images/help/repository/blame-ignore-revs-file.png)

Dies kann hilfreich sein, wenn einige Commits umfangreiche Änderungen an deinem Code vornehmen. Du kannst die Datei auch bei der lokalen Ausführung von `git blame` verwenden:

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

Du kannst Git auch lokal so konfigurieren, dass Überarbeitungen in dieser Datei immer ignoriert werden:

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

## Umgehen von `.git-blame-ignore-revs` in der Blame-Ansicht

Wenn in der Blame-Ansicht für eine Datei **Überarbeitungen in .git-blame-ignore-revs werden ignoriert** angezeigt wird, kannst du `.git-blame-ignore-revs` umgehen und dennoch die normale Blame-Ansicht anzeigen. Füge in der URL `~` an den SHA an, damit das Banner **Überarbeitungen in „.git-blame-ignore-revs“ werden ignoriert** nicht mehr angezeigt wird.

## Verständnis von Dateien mit Copilot

> \[!NOTE] Du benötigst Zugriff auf GitHub Copilot. Weitere Informationen finden Sie unter [Was ist GitHub Copilot?](/de/copilot/about-github-copilot/what-is-github-copilot#getting-access-to-copilot).

Du kannst Copilot ebenfalls verwenden, um Fragen zu bestimmte Codezeilen in einer Datei zu stellen, wodurch du Funktionsweise des Codes besser nachvollziehen und das Risiko der Einführung neuer Probleme verringern kannst.

1. Navigieren Sie in GitHub zu einem Repository und öffnen Sie eine Datei.

2. Führen Sie eines der folgenden Verfahren aus:
   * Um eine Frage zur **gesamten Datei** zu stellen, klicke oben rechts in der Dateiansicht auf das Copilot-Symbol (<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>).

     ![Screenshot der SchaltflächeCopilot, oben in der Dateiansicht mit dunkel-orangefarbener Umrandung hervorgehoben.](/assets/images/help/copilot/copilot-button-for-file.png)

   * So stellst du eine Frage zu **bestimmten Zeilen** in der Datei:

     1. Klicke auf die Zeilennummer der ersten Zeile, zu der du eine Frage stellen möchtest, halte die <kbd>UMSCHALTTASTE</kbd> gedrückt, und klicke dann auf die Zeilennummer der letzten Zeile, die du auswählen möchtest.
     2. Um eigene Fragen zu den ausgewählten Zeilen zu stelle, klicke rechts neben deiner Auswahl auf das Copilot-Symbol (<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>), und gib anschließend deine Frage in das GitHub Copilot Gespräch-Panel ein.
     3. Um eine vordefinierte Frage zu stellen, klicke auf das Dropdownmenü neben dem Copilot-Symbol, und wähle dann eine der Optionen aus.

     ![Screenshot der Schaltflächen Copilot, hervorgehoben mit dunkel-orangefarbener Umrandung rechts neben dem ausgewählten Code.](/assets/images/help/copilot/copilot-buttons-inline-code.png)

3. Wenn Sie auf das Symbol Copilot im Textfeld „Copilot eine Frage stellen“ unten im Chatfenster klicken, eine Frage eingeben und dann die <kbd>Eingabetaste</kbd> drücken.

   Wenn Sie beispielsweise nach der gesamten Datei fragen, können Sie Folgendes eingeben:

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

   Wenn Sie Fragen zu bestimmten Zeilen haben, können Sie Folgendes eingeben:

   * `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 antwortet auf Ihre Anfrage im Fenster.

4. Optional kannst du nach der Übermittlung einer Frage im Textfeld auf <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> klicken, um die Antwort zu beenden.

5. Sie können die Unterhaltung fortsetzen, indem Sie eine Folgefrage stellen. Sie können z. B. „Weitere Informationen erhalten“ eingeben, um Copilot abzurufen, um den letzten Kommentar zu erweitern.