Speichern Ihrer Arbeit mit Commits

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019 | TFS 2018

Visual Studio 2019 | Visual Studio 2022

Git erstellt keine automatischen Momentaufnahmen Ihrer Arbeit, wenn Sie Dateien in Ihrem Repository ändern. Sie teilen Git mit, welche Dateiänderungen Sie in einer Momentaufnahme erfassen möchten, indem Sie bestimmte Änderungen stagen. Nach dem Staging speichern Sie die Momentaufnahme, indem Sie einen Commit ausführen.

Dieser Artikel enthält Erläuterungen zu Verfahren für die folgenden Aufgaben:

  • Nachverfolgen von Änderungen durch Git
  • Inhalt eines Commits
  • Stagen von Änderungen
  • Erstellen eines Commits
  • Aktualisieren des letzten Commits

Eine Übersicht über den Git-Workflow finden Sie im Azure Repos Git-Tutorial.

Nachverfolgen von Änderungen durch Git

Bei der Arbeit in Ihrem Repository werden Änderungen an allen nachverfolgten Dateien in Git aufgezeichnet. Nachverfolgte Dateien sind Dateien, die derzeit im Stage oder im vorherigen Commit enthalten sind. Git unterteilt nachverfolgte Dateien in drei Kategorien:

  • Unveränderte Dateien: Die Dateien, die Sie seit dem letzten Commit nicht geändert haben.
  • Geänderte Dateien: Die Dateien, die Sie seit Ihrem letzten Commit geändert haben, aber nicht für den nächsten Commit gestaget wurden.
  • Gestagete Dateien: Die Dateien, die Sie seit Ihrem letzten Commit geändert haben und für den nächsten Commit gestaget wurden.

Screenshot: Lebenszyklus von Dateien in Ihrem Repository zwischen den drei Zuständen.

Wenn Sie einen Commit erstellen, werden nur gestagete Dateien und unveränderte Dateien für die Momentaufnahme verwendet. Ungestagete Änderungen an den geänderten Dateien werden beibehalten, die Momentaufnahme enthält aber die unveränderte Version dieser Dateien. Git verfolgt Änderungen an neuen Dateien nur nach und bezieht neue Dateien in die Momentaufnahme nur ein, nachdem Sie die Dateien gestaget haben.

Commits werden in Ihrem lokalen Git-Repository erstellt. Jeder Commit muss nicht perfekt sein, und es können mehrere Commits erforderlich sein, um eine beabsichtigte Änderung zu erreichen. Erstellen Sie Commits, während Sie arbeiten. Wenn Sie fertig sind, können Sie Ihre Commits an ein Remoterepository pushen, um Ihre Arbeit für andere freizugeben.

Inhalt eines Commits

Jeder Commit umfasst die folgenden Informationen:

  • Eine Momentaufnahme aller nachverfolgten Dateien in Ihrem Repository zum Zeitpunkt des Commits. Bei einer Momentaufnahme handelt es sich nicht um den Unterschied zwischen Commits, obwohl Git Momentaufnahmen verwendet, um den Unterschied zu berechnen. Momentaufnahmen ermöglichen den schnellen Wechsel zwischen Branches und unterstützen das Zusammenführen von Branches.
  • Ein Verweis auf übergeordnete Commits. Die meisten Commits verfügen über einen übergeordnete Commit. Der nächste Commit nach dem Mergen von Branches weist jedoch mehrere übergeordnete Commits auf, und der erste Commit in einem Repository keinen.
  • Eine Nachricht, die die Änderungen im Commit beschreibt. Sie geben die Nachricht ein, wenn Sie den Commit erstellen.

Git verwendet die Momentaufnahme und die übergeordneten Verweise der einzelnen Commits, um eine vollständige Aufzeichnung der Entwicklung im Repository zu verwalten. Um Änderungen in Ihrem Code zu untersuchen, können Sie den Git-Verlauf Ihres Repositorys überprüfen.

Stagen von Änderungen

So erstellen Sie eine Momentaufnahme für einen Commit:

  • Stagen Sie neue Dateien, um Git mitzuteilen, dass sie zur Momentaufnahme hinzugefügt werden sollen und Git Änderungen an diesen Dateien in Zukunft nachverfolgen soll.
  • Stagen Sie bearbeitete Dateien, um Git mitzuteilen, dass die geänderte Dateiversion und nicht die unveränderte Dateiversion in der Momentaufnahme enthalten sein soll.
  • Stagen Sie gelöschte Dateien, um Git mitzuteilen, dass sie aus dem Momentaufnahme entfernt und nicht mehr nachverfolgt werden sollen.

Um temporäre Dateien, Protokolldateien oder andere Dateien aus der Momentaufnahme auszuschließen, können Sie Git so konfigurieren, dass bestimmte Dateien ignoriert werden.

Hinweis

Git unterstützt das interaktive Staging von bearbeiteten Dateien, sodass Sie bestimmte Änderungen innerhalb einer Datei stagen können. Dies ist ein nützliches Feature, wenn Sie unterschiedliche Dateibearbeitungen in unterschiedliche Commits aufnehmen möchten.

Visual Studio 2022 bietet Git-Versionskontrolle mithilfe des Git-Menüs, Git-Änderungen sowie über Kontextmenüs im Projektmappen-Explorer. Visual Studio 2019, Version 16.8 bietet auch die Team Explorer-Git-Benutzeroberfläche. Weitere Informationen finden Sie auf der Registerkarte Visual Studio 2019 – Team Explorer.

Klicken Sie im Fenster Git-Änderungen mit der rechten Maustaste auf eine Datei im Abschnitt Änderungen, und wählen Sie Stage aus, um sie dem Abschnitt Gestagete Änderungen hinzuzufügen.

Screenshot: Option „Änderungen“ im Fenster „Git-Änderungen“ in Visual Studio.

Alternativ können Sie eine geänderte Datei stagen, indem Sie das Pluszeichen neben der Datei auswählen. Wenn Sie alle geänderten Dateien in einem Ordner stagen möchten, wählen Sie das Pluszeichen neben dem Ordner aus. Um alle geänderten Dateien in Ihrem Repository zu stagen, wählen Sie das Pluszeichen in der oberen rechten Ecke des Abschnitts Änderungen aus.

Sie können Git anweisen, eine Datei zu ignorieren, indem Sie mit der rechten Maustaste darauf klicken und Dieses lokale Element ignorieren oder Diese Erweiterung ignorieren auswählen. Jeder Befehl erstellt eine GITIGNORE-Datei in Ihrem Repository, wenn eine solche Datei nicht vorhanden ist, und fügt ihr einen Eintrag hinzu. Ignorierte Dateien werden in Visual Studio nicht im Abschnitt Änderungen angezeigt. Die GITIGNORE-Datei besitzt jedoch keine Auswirkungen auf nachverfolgte Dateien. Informationen zum Konfigurieren von Git zum Ignorieren nachverfolgter Dateien finden Sie unter Ignorieren von Dateien. Um Zeit zu sparen, können Sie GITIGNORE-Vorlagen für verschiedene Entwicklungsumgebungen aus dem gitignore-Repository in GitHub herunterladen.

Hinweis

Ab Visual Studio 2022, Version 17.3, unterstützt Visual Studio das Staging von partiellen Änderungen in einer Datei. Weitere Informationen finden unter Stagen von Codezeilen in Visual Studio.

Erstellen eines Commits

Geben Sie im Fenster Git-Änderungen eine Meldung ein, in der Ihre gestageten Änderungen beschrieben werden, und wählen Sie dann Gestagete committen aus.

Screenshot: Link „Informationen committen“ in Visual Studio.

Wählen Sie den Commitlink zu, Committen der Details aus.

Screenshot: Link „Commitdetails“ im Fenster „Git-Änderungen“ in Visual Studio.

Hinweis

Wenn Ihre Änderungen alle nicht gestaget sind, können Sie das Staging überspringen und direkt committen, indem Sie Alle committen auswählen.

Screenshot: Option „Alle committen“ im Fenster „Git-Änderungen“ in Visual Studio.

Aktualisieren des letzten Commits

Git unterstützt das Ändern der gestageter Dateien oder Nachrichten Ihres letzten Commits. Dieser Vorgang ersetzt Ihren letzten Commit durch einen neuen Commit, der die gestageten Dateien aus beiden Commits kombiniert und die neue Commitnachricht verwendet. Das Ändern eines Commits ist nützlich, wenn Sie vergessen haben, eine Datei zu stagen, oder wenn Ihre letzte Commitnachricht einen Tippfehler aufweist.

Warnung

Ändern Sie keinen bereits gepushten Commit, da dies zu Synchronisierungsproblemen mit Ihrem Remoterepository führt. Verwenden Sie für einen gepushten Commit eine der folgenden Strategien:

  • Erstellen und pushen Sie einen weiteren Commit, der die durch den vorherigen Commit verursachten Probleme behebt.
  • Machen Sie den vorherigen Commit, der gepusht wurde, mit git revert rückgängig, um einen neuen Commit zu erstellen, der alle Änderungen, die vom vorherigen Commit vorgenommen wurden, zurücksetzt. Pushen Sie dann den neuen Commit.

Optional können Sie im Fenster Git-Änderungen eine oder mehrere Dateien stagen, eine Commitnachricht eingeben, und Ändern sowie Gestaffelt committen auswählen.

Screenshot: Option „Vorheriges Commit ändern“ im Fenster „Git-Änderungen“ von Visual Studio.

Das Fenster Git-Änderungen unterstützt das Ändern der Commitnachricht und/oder der gestageten Dateien. Wenn Sie Ändern auswählen, wird der Bezeichner-SHA für den vorherigen Commit angezeigt.

Nächste Schritte