Verwalten von Git-Repositorys in Visual Studio

Das fenster Git Repository bietet eine Vollbild-Git-Benutzeroberfläche, mit der Sie Ihr Git-Repository verwalten und mit den Projekten Ihres Teams auf dem neuesten Stand bleiben können. Beispiel: Sie können Commits zurücksetzen oder wiederherstellen, eine Einzelauswahl in Commits treffen oder einfach ihren Commitverlauf bereinigen. Das Fenster Git-Repository ist außerdem hervorragend für die Visualisierung und Verwaltung Ihrer Branches geeignet.

Die Versionssteuerung mit Visual Studio ist mit Git einfach. Und Sie können remote mit dem Git-Anbieter Ihrer Wahl arbeiten, z. B. GitHub oder Azure DevOps. Oder Sie können lokal ohne Anbieter arbeiten.

Öffnen des Git-Repository-Fensters

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

Einen Commit mit GitHub Copilot Chat erläutern

Mit Visual Studio 2022, Version 17.10 Preview 2 und höher und den GitHub Copilot-Erweiterungen, können Sie KI verwenden, um eine detaillierte Commit-Beschreibung zu generieren, die die Änderungen in diesem Commit beschreibt. Drücken Sie die Schaltfläche Erläutern, um anzufordern, dass GitHub Copilot eine Commit-Beschreibung erstellt. Informationen zum Installieren von GitHub Copilot finden Sie unter Installieren und Verwalten von GitHub Copilot in Visual Studio.

Screenshot der Schaltfläche

Ändern des letzten Commits (korrigieren)

"Das Aktualisieren des letzten Commits wird in Git als Änderung bezeichnet und ist ein gängiger Anwendungsfall." Manchmal müssen Sie ihre Commit-Nachricht nur aktualisieren, oder Sie müssen möglicherweise eine Änderung der letzten Minute einschließen.

Sie können einen Commit in der Befehlszeile ändern, indem Sie den folgenden Befehl verwenden:

git commit --amend

Das Fenster Git Repository erleichtert das Aktualisieren Ihrer zuletzt eingegebenen Commit-Nachricht. Öffnen Sie die Commitdetails des letzten Commits, indem Sie darauf doppelklicken, und wählen Sie dann die Option Bearbeiten neben der Commitnachricht aus.

Screenshot des Editierens einer Commit-Nachricht.

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

Screenshot des Speicherns einer bearbeiteten Nachricht durch Auswählen von

Wenn Sie Codeänderungen in Ihren letzten Commit einschließen müssen, können Sie dies im Fenster Git Changes tun. Aktivieren Sie das Kontrollkästchen Ändern, und übernehmen Sie dann die Änderungen.

Screenshot zum Ändern von Codeänderungen im Git-Fenster

Weitere Informationen zur Änderung, einschließlich der Änderung von Commit-Nachrichten, die nicht zuletzt verwendet wurden, finden Sie auf der Git-Website unter Git-Tools – Umschreiben des Verlaufs.

Mergen von Commits (Squash)

Um eine Reihe von Commits in einem Commit mergen, bietet Git eine Option mit dem Namen „Squash“. Diese Option kann hilfreich sein, wenn Sie häufige Commits vornehmen und mit einer langen Liste von Commits enden, die Sie bereinigen möchten, bevor Sie einen Push an ein Remote-Repository senden.

Sie können zwei Commits in der Befehlszeile über den folgenden Befehl squashen:

git rebase -i HEAD~2

Aktualisieren Sie dann pick auf squash, speichern und aktualisieren Sie die Commit-Nachricht.

Screenshot: Aktualisieren der Auswahl in „Squash“

Zum Zusammenführen von Commits in Visual Studio verwenden Sie die STRG--TASTE, um mehrere Commits auszuwählen, die Sie zusammenführen möchten. Klicken Sie dann mit der rechten Maustaste, und wählen Sie Squash für Commits ausführen aus. Visual Studio kombiniert automatisch Ihre Commit-Nachrichten, manchmal ist es jedoch besser, eine aktualisierte Nachricht bereitzustellen. Wenn Sie Ihre Commitnachricht überprüft und aktualisiert haben, wählen Sie die Schaltfläche Squash aus.

Screenshot: Squashen von Commits in Visual Studio

Weitere Informationen zum Squashen finden Sie auf der Git-Website unter Git-Tools – Umschreiben des Verlaufs.

Mergen und Ausführen eines Rebases von Branches

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

Anmerkung

In den folgenden Anweisungen wird New_Feature als Beispielname für einen Featurezweig verwendet. Ersetzen Sie es durch den Namen Ihres eigenen Zweigs.

Verwenden Sie die folgenden Befehle, um den Haupt-Branch in Ihren Feature-Branch in der Befehlszeile zusammenzuführen:

git checkout New_Feature
git merge main

In Visual Studio können Sie den Featurebranch überprüfen, indem Sie in der Branchliste darauf doppelklicken. Klicken Sie dann mit der rechten Maustaste auf Main, und wählen Sie „Main“ in „New_Feature“ mergen aus.

Screenshot des Zusammenführens von Zweigen 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 von „New_Feature“ in „Main“ ausführen aus.

Screenshot: Ausführen eines Rebases von Branches in Visual Studio

Weitere Informationen zum Mergen, Ausführen eines Rebases und Branchen im Allgemeinen finden Sie auf der Git-Website unter Git-Branches.

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, um mithilfe der Befehlszeile Änderungen von einem Commit in Ihren aktuellen Branch zu kopieren:

git cherry-pick 7599e530

Zeigen Sie in Visual Studio zum Ausführen derselben Aktion eine Vorschau des Branchs an, aus dem Sie einen Commit auswählen möchten, indem Sie ihn mit einem Einfachklick auswählen. Klicken Sie dann mit der rechten Maustaste auf den gewählten Commit und wählen Sie Cherry-Pickaus.

Screenshot der Kirschauswahl in Visual Studio.

Wenn der Vorgang abgeschlossen ist, zeigt Visual Studio eine Erfolgsmeldung an. Der Commit, für den Sie einen Cherry-Pick ausgeführt haben, 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 „git revert“, um die Änderungen in Commits rückgängig zu machen, die an freigegebene Branches gepusht wurden. Mit dem Befehl "Zurücksetzen" wird ein neuer Commit erstellt, mit dem die an einem vorherigen Commit vorgenommenen Änderungen rückgängig gemacht werden. Mit dem Befehl "Revert" wird der Verlauf des Repositorys nicht neu geschrieben, wodurch er sicher verwendet werden kann, wenn Sie mit anderen zusammenarbeiten.

Verwenden Sie die folgenden Befehle, um Änderungen, die in einem Commit vorgenommen wurden, mithilfe der Befehlszeile rückgängig zu machen. Ersetzen Sie die Beispiel-ID durch die ID eines realen 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. Um dasselbe in Visual Studio zu tun, klicken Sie mit der rechten Maustaste auf den Commit, den Sie rückgängig machen möchten, und wählen Sie dann Rückgängig machenaus. 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 angezeigt.

Screenshot: Wiederherstellen in Visual Studio

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

Screenshot: Bestätigung eines Wiederherstellungsvorgangs

Das Menüelement Wiederherstellen kann unter bestimmten Umständen wie beim Mergen von Commits oder bei der Ausführung von Git-Vorgängen ausgegraut (deaktiviert) sein.

Weitere Informationen zum Zurücksetzen von Änderungen finden Sie auf der Git-Webseite für den Befehl "Zurücksetzen".

Zurücksetzen eines Branchs in einen vorherigen Zustand

Verwenden Sie den Befehl "reset", um einen Branch in Ihrem lokalen Repository auf den Inhalt eines vorherigen Commits zurückzusetzen. 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 "Zurücksetzen".

Um eine Verzweigung mithilfe der Befehlszeile auf einen vorherigen Zustand zurückzusetzen, verwenden Sie den folgenden Befehl. Ersetzen Sie die Beispiel-ID durch die ID eines echten Commits in Ihrem Branch.

git reset --hard 53333305

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

Screenshot: Zurücksetzen eines Branchs in Visual Studio

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