Verwalten von Git-Repositorys in Visual Studio

Das Fenster Git Repository bietet eine Git-Benutzeroberfläche im Vollbild, über die Sie Ihr Git-Repository verwalten und bei den Projekten Ihres Teams auf dem neuesten Stand bleiben können. Beispielsweise können Sie Commits zurücksetzen oder wiederherstellen, eine Einzelauswahl in Commits treffen oder einfach ihren Commitverlauf bereinigen. Das Fenster Git Repository ist auch ein hervorragend für die Visualisierung und Verwaltung Ihrer Branches geeignet.

Die Versionskontrolle in Visual Studio ist mit Git einfach. Sie können außerdem remote mit dem Git-Anbieter Ihrer Wahl arbeiten, beispielsweise mit GitHub oder Azure DevOps. Sie können auch lokal ohne Anbieter arbeiten.

Öffnen Sie das Fenster des Git-Repositorys

Um das Fenster Git Repository zu öffnen, wählen Sie Anzeige>Git-Repository aus (oder drücken Sie Ctrl+0, Ctrl+R) oder drücken Sie STRG+Q und unter Features suchen Sie nach Git-Repository.

Ändern des letzten Commits (Amend)

Das Aktualisieren des letzten Commits wird in Git als Amend bezeichnet und ist ein häufiger Anwendungsfall. Manchmal müssen Sie nur Ihre Commitnachricht aktualisieren oder eine Änderung in letzter Minute einfügen.

Sie können einen Commit in der Befehlszeile über den folgenden Befehl ändern:

git commit --amend

Im Fenster Git Repository können Sie Ihre neuste Commitnachricht ganz einfach aktualisieren. Öffnen Sie die Details des letzten Commits, indem Sie darauf doppelklicken, und wählen Sie dann die Option Bearbeiten neben der Commitnachricht aus.

Screenshot des Bearbeitens einer Commitnachricht.

Wenn Sie mit dem Bearbeiten Ihrer Commitnachricht fertig sind, wählen Sie Amend aus.

Screenshot des Speicherns einer bearbeiteten Nachricht durch Auswählen von „Amend“.

Wenn Sie Codeänderungen in Ihren letzten Commit einschließen müssen, können Sie dies im Fenster Git Changes (Git-Änderungen) erledigen. Aktivieren Sie das Kontrollkästchen Amend, und committen Sie dann Ihre Änderungen.

Screenshot des Übernehmens von Codeänderungen mithilfe des Fensters „Git Changes“.

Weitere Informationen zu Zusatzvereinbarungen, z. B. zum Ändern einer Commit-Nachrichten, die nicht die zuletzt verwendete ist, finden Sie unter Git Tools – Umschreiben des Verlaufs auf der Git-Website.

Zusammenführen von Commits (Squash)

Um eine Reihe von Commits in einem Commit zusammenzuführen, bietet Git eine Option mit dem Namen „Squash“. Diese Option kann hilfreich sein, wenn Sie häufig Commits durchführen und am Ende eine lange Liste von Commits erhalten, die Sie vor dem Pushen an ein Remoterepository bereinigen möchten.

Sie können für einen Commit in der Befehlszeile über den folgenden Befehl die Funktion Squash ausführen:

git rebase -i HEAD~2

Aktualisieren Sie pick dann in squash, und speichern und aktualisieren Sie die Commitnachricht.

Screenshot des Aktualisierens der Auswahl in „Squash“.

Verwenden Sie zum Zusammenführen von Commits in Visual Studio die STRG-TASTE, um mehrere Commits zum Zusammenführen auszuwählen. Klicken Sie dann mit der rechten Maustaste, und wählen Sie Squash Commits aus. Visual Studio kombiniert Ihre Commitnachrichten automatisch, aber manchmal ist es besser, eine aktualisierte Nachricht bereitzustellen. Wenn Sie Ihre Commitnachricht überprüft und aktualisiert haben, wählen Sie die Schaltfläche Squash aus.

Screenshot der Funktion Squash für Commits in Visual Studio.

Weitere Informationen zur Squash-Funktion finden Sie auf der Git-Website unter Git Tools – Rewriting History (Git-Tools – Umschreiben des Verlaufs).

Zusammenführen und Rebase von Branches

Wenn Sie Git-Branches verwenden, um an verschiedenen Features zu arbeiten, müssen Sie irgendwann Updates einbeziehen, die in anderen Branches eingeführt wurden. Dies kann geschehen, während Sie noch an Ihrem Featurebranch arbeiten. Es kann auch geschehen, wenn Sie mit der Arbeit an Ihrem Featurebranch fertig sind und Ihre Änderungen beibehalten müssen, indem Sie sie einem anderen Branch hinzufügen. In Git können Sie diese Updates einschließen, indem Sie Branches zusammenführen oder ein Rebase ausführen.

Hinweis

In den folgenden Anweisungen wird New_Feature als Beispielname für einen Featurebranch verwendet. Ersetzen Sie ihn durch den Namen Ihres eigenen Branchs.

Verwenden Sie die folgenden Befehle in der Befehlszeile, um den Mainbranch in Ihrem Featurebranch zusammenzuführen:

git checkout New_Feature
git merge main

In Visual Studio können Sie den Featurebranch überprüfen, indem Sie in der Verzweigungsliste darauf doppelklicken. Klicken Sie dann mit der rechten Maustaste auf Main, und wählen Sie Merge „main“ into „New_Feature“ („Main“ in „New_Feature“ zusammenführen) aus.

Screenshot des Zusammenführens von Branches in Visual Studio.

Verwenden Sie die folgenden Befehle in der Befehlszeile, um für den Mainbranch in Ihrem Featurebranch ein Rebase auszuführen:

git checkout New_Feature
git rebase main

In Visual Studio können Sie den Featurebranch überprüfen, indem Sie in der Verzweigungsliste darauf doppelklicken. Klicken Sie dann mit der rechten Maustaste auf Main, und wählen Sie Rebase „New_Feature“ onto „main“ (Rebase von „New_Feature“ in „Main“) aus.

Screenshot eines Rebase von Branches in Visual Studio.

Weitere Informationen zum Zusammenführen, Ausführen eines Rebase und Branchen im Allgemeinen finden Sie auf der Git-Website unter Git Branching.

Kopieren von Commits (Cherry-Pick)

Kopieren Sie Commits mit der Option „Cherry-Pick“ (Einzelauswahl) von einem Branch in einen anderen. Im Gegensatz zu einem Zusammenführen oder Rebase werden beim Cherry-Picking nur die Änderungen aus den Commits übernommen, die Sie auswählen, anstatt alle Änderungen in einem Branch. Cherry-Picking ist eine hervorragende Möglichkeit, diese häufig auftretenden Probleme anzugehen:

  • Versehentliches Commit im falschen Branch. Treffen Sie eine Einzelauswahl für den richtigen Branch, und setzen Sie dann den ursprünglichen Branch auf den vorherigen Commit zurück.
  • Hervorheben einer Reihe von vorgenommenen Commits in einem Featurebranch, damit Sie sie früher wieder mit Ihrem Mainbranch zusammenführen.
  • Portieren in bestimmten Commits aus dem Mainbranch, ohne ein Rebase für Ihren Branch auszuführen.

Verwenden Sie den folgenden Befehl in der Befehlszeile, um Änderungen aus einem Commit in Ihren aktuellen Branch kopieren:

git cherry-pick 7599e530

In Visual Studio zeigen Sie eine Vorschau des Branchs an, aus dem Sie einen Commit auswählen möchten, indem Sie ihn mit einem Einzelklick auswählen. Klicken Sie dann mit der rechten Maustaste auf den Zielcommit, und wählen Sie Cherry-Pick aus.

Screenshot des Cherry-Picking in Visual Studio.

Nach Abschluss des Vorgangs wird in Visual Studio eine Erfolgsmeldung angezeigt. Der Commit mit der Einzelauswahl wird im Abschnitt Ausgehend angezeigt.

Weitere Informationen zum Cherry-Picking von Commits finden Sie auf der Git-Webseite für den Cherry-Pick-Befehl.

Wiederherstellen von Änderungen

Verwenden Sie den Befehl „Wiederherstellen“, um die Änderungen in Commits, die an freigegebene Branches gepusht wurden, rückgängig zu machen. Der Befehl „Wiederherstellen“ erstellt einen neuen Commit, der die Änderungen in einem vorherigen Commit rückgängig macht. Der Befehl „Wiederherstellen“ schreibt den Repositoryverlauf nicht neu, sodass er sicher verwendet werden kann, wenn Sie mit anderen Personen zusammenarbeiten.

Verwenden Sie die folgenden Befehle in der Befehlszeile, um in einem Commit vorgenommene Änderungen wiederherzustellen. Ersetzen Sie die Beispiel-ID durch die ID eines echten Commits in Ihrem Branch.

git revert 53333305
git commit

Im vorherigen Beispiel werden durch die Befehle die Änderungen rückgängig gemacht, die im Commit 53333305 vorgenommen wurden. Anschließend wird ein neuer Commit für den Branch erstellt. Der ursprüngliche Commit befindet sich noch im Git-Verlauf. In Visual Studio klicken Sie mit der rechten Maustaste auf den Commit, den Sie wiederherstellen möchten, und wählen dann Wiederherstellen aus. Nachdem Sie die Aktion bestätigt haben und der Vorgang abgeschlossen wurde, wird in Visual Studio eine Erfolgsmeldung angezeigt, und im Abschnitt Ausgehend wird ein neuer Commit aufgeführt.

Screenshot des Wiederherstellens in Visual Studio.

Wählen Sie den neuen Commit aus, um zu bestätigen, dass die Änderungen des wiederhergestellten Commits rückgängig gemacht wurden.

Screenshot der Bestätigung eines Wiederherstellungsvorgangs.

Weitere Informationen zum Wiederherstellen von Änderungen finden Sie auf der Git-Webseite für den Befehl „Wiederherstellen“.

Zurücksetzen eines Branchs in einen vorherigen Zustand

Verwenden Sie den Befehl „Zurücksetzen“, um einen Branch in Ihrem lokalen Repository wieder zum Inhalt eines vorherigen Commits zu bringen. Diese Aktion verwirft alle Änderungen seit dem Commit, auf den Sie Ihren Branch zurücksetzen.

Warnung

Setzen Sie keine freigegebenen Branches zurück, da Sie sonst möglicherweise die Arbeit anderer Personen löschen. Verwenden Sie stattdessen den Befehl „Wiederherstellen“.

Verwenden Sie den folgenden Befehl in der Befehlszeile, um einen Branch in einen vorherigen Zustand zurückzusetzen. Ersetzen Sie die Beispiel-ID durch die ID eines echten Commits in Ihrem Branch.

git reset --hard 53333305

Der Teil --hard des Befehls weist Git an, die Dateien in den Zustand des vorherigen Commits zurückzusetzen und alle gestageten Änderungen zu verwerfen. In Visual Studio klicken Sie mit der rechten Maustaste auf den Commit, zu den Sie Ihren Branch zurücksetzen möchten, und wählen dann Zurücksetzen>Änderungen löschen (--hard) aus.

Screenshot des Zurücksetzens eines Branchs in Visual Studio.

Weitere Informationen zum Zurücksetzen von Branches finden Sie auf der Git-Webseite für den Befehl „Zurücksetzen“.