Durchsuchen von Git-Repositorys und Vergleichen von Branches in Visual Studio

Das Fenster Git-Änderungen bietet während der Programmierung eine nahtlose Möglichkeit zur Interaktion mit Git, ohne dass Sie Ihren Code verlassen müssen. Manchmal ist es jedoch sinnvoller, sich auf Ihr Git-Repository zu konzentrieren. So kann es beispielsweise erforderlich sein, sich ein umfassendes Bild über die Arbeit Ihres Teams zu verschaffen oder vielleicht zwei Commits zu vergleichen, um einen Fehler zu untersuchen.

Sie können remote mit dem Git-Anbieter Ihrer Wahl arbeiten, beispielsweise mit GitHub oder Azure DevOps.

Durchsuchen von lokalen und Remotebranches

Um zu beginnen, öffnen Sie das Git-Repository-Fenster, indem Sie Git-Repository im Fenster Ansicht (oder über die Tastenkombination STRG+0, STRG+R) auswählen. Sie können das Fenster Git-Repository auch über die ausgehenden/eingehenden Links im Fenster Git-Änderungen und in der Statusleiste aufrufen.

Screenshot that shows the anatomy of the Git Repository window.

Das Fenster Git-Repository enthält drei Hauptabschnitte, wie im vorstehenden Screenshot nummeriert:

  1. Branches: Git ermöglicht Benutzern durch Branches ein Multitasking und das Experimentieren mit ihrem Code. Wenn Sie gleichzeitig an mehreren Features arbeiten oder Ideen ohne Auswirkungen auf Ihren Arbeitscode ausprobieren möchten, können Branches sehr nützlich sein.

  2. Graph: Dieser Abschnitt visualisiert den Status Ihres Branches. Er umfasst drei Unterabschnitte:

    • Eingehend zeigt eingehende Commits, die Ihr Team beigetragen hat.
    • Ausgehend zeigt Ihre lokalen Commits, die noch nicht gepusht wurden.
    • Lokaler Verlauf zeigt die verbleibenden Commits, die über Ihr lokales Repository nachverfolgt werden.
  3. Commit: Bei Auswahl eines Commits im Abschnitt Graph werden dessen Details geöffnet. Wenn Sie die durch einen Commit eingeführten Änderungen überprüfen möchten, markieren Sie sie, um den Unterschied anzuzeigen. Der Screenshot oben zeigt zum Beispiel die Änderungen, die ein Commit an der Datei Resize.cs vorgenommen hat.

Mit den Tastenkombinationen ALT+NACH-OBEN-TASTE oder ALT+NACH-UNTEN-TASTE können Sie zwischen diesen Abschnitten springen.

Sie können einen beliebigen lokalen oder Remotebranch durchsuchen, ohne Ihren Branch wechseln zu müssen. Wenn Sie sich auf einen bestimmten Commit konzentrieren möchten, wählen Sie die Schaltfläche In neuer Registerkarte öffnen aus, um den Commit in einer neuen Registerkarte zu öffnen.

Screenshot of how to open a commit on a new tab.

Screenshot of the tab for commit details.

Tipp

Um Ihren Commit im Vollbildmodus anzuzeigen, lösen Sie die Registerkarte Commit, und maximieren Sie das Fenster Commit mithilfe der Schaltfläche Maximieren. Sie können außerdem durch Auswahl von Diff-Konfiguration (das Zahnradsymbol) Ihre bevorzugte Diff-Konfiguration auswählen.

Screenshot of full-screen commit details with diff configurations.

Graphansicht mit mehreren Verzweigungen

Neu in Version 17.7: Wenn Sie das Git-Repositoryfenster öffnen, beginnen Sie in der Ansicht mit einer einzigen Verzweigung. Anschließend können Sie eine beliebige Verzweigung auswählen, um sowohl die Verzweigung als auch deren Commits einer Graphansicht mit mehreren Verzweigungen hinzuzufügen. Dadurch werden visuelle Hinweise zur effizienteren Interaktion mit mehreren Verzweigungen hinzugefügt.

Screenshot of the multi-graph branch view in Visual Studio.

Es gibt sowohl Linienfarben als auch Verzweigungsbezeichnungen auf der linken Seite der Ansicht Lokaler Verlauf, die das Nachverfolgen von Commits zu den einzelnen Verzweigungen erleichtern. Die Liste der Verzweigungen oben in der Tabelle vereinfacht das Scrollen zwischen Verzweigungen und zeigt auf einen Blick, welche Verzweigungen im Graphen dargestellt werden.

Vergleichen von Commits

Um zwei beliebige Commits in Ihrem Branch zu vergleichen, wählen Sie mithilfe der STRG-Taste die beiden Commits aus, die Sie vergleichen möchten. Klicken Sie dann mit der rechten Maustaste auf einen der beiden Commits, und wählen Sie Commits vergleichen aus.

Screenshot of how to compare two commits.

Screenshot of compared commits.

Tipp

Ähnlich wie bei Commitdetails können Sie die Schaltfläche In neuer Registerkarte öffnen verwenden, um den Vergleich auf einer anderen Registerkarte zu öffnen oder auf dem Bildschirm zu maximieren.

Erstellen eines Branches aus einem Commit

In Visual Studio können Sie den Bereich Graph im Fenster Git-Repository verwenden, um Branches aus vorherigen Commits zu erstellen. Klicken Sie dazu mit der rechten Maustaste auf den Commit, aus dem Sie einen neuen Branch erstellen möchten, und wählen Sie dann Neuer Branch aus.

Screenshot of the Git Graph pane of the Git Repository window.

Hinweis

Der entsprechende Befehl für diese Aktion ist git branch <branchname> [<commit-id>].

Vergleichen von Branches

Der Vergleich von Branches bietet einen Überblick über die Unterschiede zwischen zwei Branches. Dies kann vor dem Erstellen eines Pull Request, vor dem Zusammenführen oder auch vor dem Löschen eines Branches sehr nützlich sein.

Diagram that illustrates how Git compares branches.

Um Ihren aktuell ausgecheckten Branch mit anderen Branches in Visual Studio zu vergleichen, können Sie mithilfe der Branchauswahl in der Statusleiste und im Toolfenster „Git-Änderungen“ einen beliebigen lokalen oder Remotebranch für den Vergleich auswählen. Klicken Sie mit der rechten Maustaste auf den gewünschten Branch, und wählen Sie Mit aktuellem Branch vergleichen aus. Alternativ können Sie auch die Branchliste im Fenster „Git-Repository“ verwenden, um auf denselben Befehl zuzugreifen.

Animation that shows the branches comparison entry points.

Durch Auswahl von Mit aktuellem Branch vergleichen wird der Bereich zum Vergleich von Branches geöffnet. Hier können Sie in der Liste Änderungen navigieren und die Datei auswählen, die Sie vergleichen möchten.

Screenshot that shows how to compare branches by using the diff view.

Tipp

Wenn Sie eine Inline-Diff-Ansicht bevorzugen, können Sie das Zahnradsymbol für die Diff-Konfiguration auswählen und zu einer Inline-Diff-Ansicht wechseln. Screenshot that shows the Diff Configuration Options that're available to you.

Auschecken von Commits

Das Auschecken eines Commits kann in mehrfacher Hinsicht von Vorteil sein. So können Sie beispielsweise zu einem früheren Punkt im Repositoryverlauf zurückkehren und Ihren Code dort ausführen oder testen. Das Auschecken kann ebenfalls nützlich sein, wenn Sie Code aus einem Remotebranch (z. B. dem Branch eines Kollegen) überprüfen möchten. Auf diese Weise müssen Sie keinen lokalen Branch erstellen, wenn Sie nicht beabsichtigen, daran mitzuwirken. Sie können in diesem Fall einfach den letzten Commit (an der Spitze) des Remotebranches auschecken, den Sie überprüfen möchten.

Diagram that illustrates the Git checkout commit process.

Um einen früheren Commit in Visual Studio auszuchecken, öffnen Sie das Fenster Git-Repository. Klicken Sie mit der rechten Maustaste auf den Commit, zu dem Sie zurückkehren möchten, und wählen Sie checkout (–detach) aus. Visual Studio zeigt ein Bestätigungsdialogfeld an, in dem erläutert wird, dass Sie beim Auschecken eines Commits in einen Zustand mit losgelöstem HEAD wechseln. Das bedeutet, dass der HEAD Ihres Repositorys nicht auf einen Branch, sondern direkt auf einen Commit verweist.

Animation that shows the checkout commit entry points.

Da Sie nun in einem Zustand mit losgelöstem HEAD arbeiten, können Sie Ihren Code ausführen und testen oder sogar Änderungen untersuchen und committen. Wenn Sie mit der Untersuchung fertig sind und zu Ihrem Branch zurückkehren möchten, haben Sie zwei Optionen: Sie können Ihre Änderungen verwerfen, indem Sie einen vorhandenen Branch auschecken, oder Sie können Ihre Änderungen beibehalten, indem Sie zunächst einen neuen Branch erstellen.

Wichtig

Commits, die in einem Zustand mit losgelöstem HEAD erstellt wurden, sind mit keinem Branch verknüpft und können von Git nach dem Auschecken eines Branches gelöscht werden. Deshalb sollten sie zum Beibehalten Ihrer Änderungen einen neuen Branch erstellen, bevor Sie einen Branch auschecken. Zum Beispiel werden die Commits C5 und C6 über die Garbage Collection gelöscht, wenn „Main“ ausgecheckt wird, ohne einen neuen Branch zu erstellen. Diagram that illustrates the detached head commits in Git.

Weitere Informationen zum losgelösten Head-Status finden Sie in der Git-Dokumentation für „Detached Head.

Das Auschecken des Commits an der Spitze des Remotebranches kann sinnvoll sein, wenn Sie einen Pull Request schnell überprüfen und die neuesten Updates bewerten möchten. Um dies in Visual Studio zu tun, müssen Sie zunächst sicherstellen, dass Sie die neuesten Updates aus Ihrem Remoterepository abgerufen haben. Klicken Sie dann mit der rechten Maustaste auf den Remotebranch, den Sie überprüfen möchten, und wählen Sie Commit an Spitze auschecken aus.

Screenshot that shows the Checkout Tip Commit option.