Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Wenn an einem Projekt mehrere Benutzer mitwirken, halten Sie Ihr lokales Git-Repository auf dem neuesten Stand, indem Sie Arbeitsdaten herunterladen und integrieren, die andere Personen in das Remoterepository des Projekts hochgeladen haben. Mit den folgenden Git-Befehlen wird Ihr lokales Repository aktualisiert:
Visual Studio verwendet eine Teilmenge dieser Git-Befehle, wenn Sie Ihr lokales Repository mit einem Remoterepository synchronisieren.
Eine Übersicht über den Git-Workflow finden Sie im Azure Repos-Git-Tutorial.
In diesem Artikel werden Schritte für die folgenden Aufgaben erläutert:
Mit Git Fetch werden Remotebranchcommits und referenzierte Dateiobjekte heruntergeladen, die nicht in Ihrem lokalen Repository vorhanden sind, und Remotenachverfolgungsbranches im lokalen Repositorycache aktualisiert. Remotenachverfolgungsbranches sind lokal zwischengespeicherte schreibgeschützte Kopien von Remotebranches und gehören nicht zu Ihren lokalen Branches. Git Fetch aktualisiert nicht Ihre lokalen Branches. Wenn beispielsweise ein mit origin
gekennzeichnetes Remoterepository über einen bugfix3
-Branch verfügt, aktualisiert Git Fetch den Remotenachverfolgungsbranch mit dem Namen origin/bugfix3
und nicht Ihren lokalen bugfix3
-Branch. Sie können Remotenachverfolgungsbranches für folgende Aufgaben verwenden:
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.
Wählen Sie im Fenster Git-Änderungen die Option Fetch aus. Wählen Sie dann ausgehend/eingehend aus, um das Fenster Git-Repository zu öffnen.
Sie können Fetch auch im Git-Menü auswählen.
Im Fenster Git-Repository werden abgerufene Commits im Abschnitt Eingehend angezeigt. Wählen Sie einen abgerufenen Commit aus, um die Liste der geänderten Dateien in diesem Commit anzuzeigen. Wählen Sie eine geänderte Datei aus, um die geänderten Inhalte in einer Vergleichsansicht anzuzeigen.
Tipp
Fetch löscht keine Remotenachverfolgungsbranches in Ihrem lokalen Repositorycache, die keine Remoteentsprechung mehr haben. So konfigurieren Sie Visual Studio, um veraltete Remotenachverfolgungsbranches während eines Fetch-Vorgangs zu löschen:
True
fest.Nach einem Git Fetch-Vorgang können Sie einen lokalen Branch mit dem entsprechenden Remotenachverfolgungsbranch vergleichen, um festzustellen, was am Remotebranch geändert wurde. Wenn Sie Ihren aktuellen lokalen Branch mit den abgerufenen Änderungen aktualisieren möchten, können Sie einen Git Merge- oder Git Rebase-Befehl ausführen. Alternativ können Sie Git Pull ausführen, wodurch Git Fetch mit Git Merge oder Git Rebase kombiniert wird. Sowohl Git Merge als auch Git Rebase aktualisieren einen Zielbranch, indem Commits aus einem Quellbranch darauf angewendet werden. Git Merge und Git Rebase verwenden jedoch unterschiedliche Strategien. Weitere Informationen finden Sie unter Aktualisieren von Branches mit Merge oder Rebase und Wann sollte Rebase anstelle von Merge verwendet werden?
Git Merge und Git Rebase integrieren Commits aus einem Quellbranch in Ihren aktuellen lokalen Branch (Zielbranch). Git Merge führt entweder einen Fast-Forward- oder No-Fast-Forward-Merge-Vorgang aus. Der No-Fast-Forward-Mergevorgang wird auch als Drei-Weg-Merge oder echter Mergevorgang bezeichnet. Git Rebase ist ein andere Art von Merge. Diese Merge-Typen sind im folgenden Diagramm dargestellt.
Git Merge und Git Rebase werden ausgiebig im Git-Workflow verwendet. Bei der Arbeit an einem lokalen Featurebranch oder Bugfixbranch haben sich folgende Verfahren bewährt:
main
-Branch mit dem seinem entsprechenden Remoterepository auf dem aktuellen Stand, indem Sie regelmäßig pullen, um Remotecommits abzurufen und zusammenzuführen.main
-Branchaktualisierungen mit einem Rebase oder Merge in Ihren lokalen Featurebranch.main
-Remotebranch zusammenzuführen.Dieser Ansatz bietet folgende Möglichkeiten:
Wenn bei Git Merge die Spitze des Zielbranchs im Quellbranch enthalten ist, wird standardmäßig ein Fast-Forward Mergevorgang ausgeführt. Andernfalls wird standardmäßig ein No-Fast-Forward-Mergevorgang ausgeführt.
Bei einem Fast-Forward-Git Merge kann es nie zu einem Mergekonflikt kommen, da Git keinen Fast-Forward-Mergevorgang anwendet, wenn die Spitze des Zielbranchs vom Quellbranch abweicht. Standardmäßig verwendet Git nach Möglichkeit ein Fast-Forward-Merge. Git wendet z. B. ein Fast-Forward-Merge auf einen lokalen Branch an, den Sie lediglich durch Pullen aus seinem entsprechenden Remotebranch aktualisieren.
Bei einem No-Fast-Forward-Git Merge wird ein neuer „Mergecommit“ des Zielbranchs generiert, der Änderungen im Quellbranch in Änderungen des Zielbranchs integriert. Die anwendbaren Änderungen sind die Änderungen, die nach dem letzten, für beide Branches gemeinsamen Commit vorgenommen wurden. Im obigen Diagramm ist Commit C das letzte gemeinsame Commit in beiden Branches. Wenn eine Quellbranchänderung einer Zielbranchänderung widerspricht, fordert Git Sie auf, den Mergekonflikt zu beheben. Der Mergecommit (L) enthält die integrierten Quellbranch- und Zielbranchänderungen. Die Quell- und Zielbranchspitzen (K und E) sind die übergeordneten Elemente des Mergecommits. Im Commitverlauf Ihres Branchs ist ein Mergecommit ein nützlicher Marker für einen Mergevorgang, der deutlich zeigt, welche Branches zusammengeführt wurden.
Bei Git Merge wird nur der Zielbranch geändert. Der Quellbranch bleibt unverändert. Wenn dabei ein Mergekonflikt auftritt, müssen Sie diesen auflösen, um den Mergevorgang durchzuführen. Alternativ können Sie den Mergevorgang abbrechen und den Zielbranch in den vorherigen Zustand zurücksetzen.
Weitere Informationen zu Mergeoptionen und -strategien finden Sie im Git-Referenzhandbuch und in der Dokumentation zu Git-Mergestrategien.
Tipp
Wenn es sich bei dem Quellbranch um einen Remotenachverfolgungsbranch handelt, muss sichergestellt sein, dass der Branch auf dem neuesten Stand ist, indem Sie vor einem Merge Git Fetch ausführen.
Wählen Sie in der Menüleiste Git > Branches verwalten aus, um das Fenster Git-Repository zu öffnen.
Klicken Sie im Fenster Git-Repository mit der rechten Maustaste auf den Zielbranch, und wählen Sie Check-Out aus.
Klicken Sie mit der rechten Maustaste auf den Quellbranch, und wählen Sie Mergen von <Quellbranch> in <Zielbranch> aus.
Visual Studio zeigt nach einem erfolgreichen Mergevorgang eine Bestätigungsmeldung an.
Wenn der Mergevorgang aufgrund von Mergekonflikten angehalten wird, werden Sie von Visual Studio benachrichtigt. Sie können entweder Konflikte lösen oder den Mergevorgang abbrechen und zum Zustand vor dem Mergevorgang zurückkehren.
Bei Git Rebase wird der Commitverlauf des Zielbranchs neu sequenziert, sodass er alle Commits im Quellbranch gefolgt von allen Commits im Zielbranch seit dem letzten gemeinsamen Commit enthält. Eine weitere Möglichkeit dafür besteht darin, dass die Änderungen durch einen Git Rebase-Vorgang in Ihrem Zielbranch über dem Quellbranchverlauf wiederholt. Wenn eine Quellbranchänderung einer Zielbranchänderung widerspricht, werden Sie von Git aufgefordert, den Mergekonflikt zu beheben. Von einem Git Rebase-Vorgang wird kein Mergecommit erstellt. Insbesondere ändert Git Rebase die Reihenfolge der vorhandenen Commits im Zielbranch, was bei den anderen Mergestrategien nicht der Fall ist. Im obigen Diagramm enthält Commit K' die gleichen Änderungen wie K, verfügt aber über eine neue Commit-ID, da er mit dem Commit E anstelle von C verknüpft ist.
Bei Git Rebase wird nur der Zielbranch geändert. Der Quellbranch bleibt unverändert. Wenn dabei ein Mergekonflikt auftritt, müssen Sie diesen auflösen, um den Rebasevorgang durchzuführen. Alternativ können Sie den Rebasevorgang abbrechen und den Zielbranch in den vorherigen Zustand zurücksetzen.
Wenn Sie als einziger an Ihrem Feature- oder Bugfixbranch arbeiten, sollten Sie Git Rebase verwenden, um neue main
-Branchcommits darin zu integrieren. Verwenden Sie andernfalls Git Merge. Weitere Informationen zu Git Rebase und zu dessen Verwendung finden Sie unter Anwenden von Änderungen durch einen Rebase und Rebase vs. Merge.
Tipp
Wenn es sich bei dem Quellbranch um einen Remotenachverfolgungsbranch handelt, muss sichergestellt sein, dass der Branch auf dem neuesten Stand ist, indem Sie vor dem Rebase Git Fetch ausführen.
Wählen Sie Git > Branches verwalten aus, um das Fenster Git-Repository zu öffnen.
Klicken Sie im Fenster Git-Repository mit der rechten Maustaste auf den Zielbranch, und wählen Sie Check-Out aus.
Klicken Sie mit der rechten Maustaste auf den Quellbranch, und wählen Sie Rebase für <Zielbranch> ausführen auf <Quellbranch> aus.
Visual Studio zeigt nach einem erfolgreichen Rebasevorgang eine Bestätigungsmeldung an.
Wenn der Rebasevorgang aufgrund von Mergekonflikten angehalten wird, werden Sie von Visual Studio benachrichtigt. Sie können entweder Konflikte lösen oder den Rebasevorgang abbrechen und zum Zustand vor dem Rebasevorgang zurückkehren.
Git Pull kombiniert standardmäßig Git Fetch und Git Merge, um Ihren aktuellen lokalen Branch von seinem entsprechenden Remotebranch zu aktualisieren. Git Pull kann optional Git Rebase anstelle von Git Merge ausführen.
Im Gegensatz zu Git Fetch aktualisiert Git Pull Ihren aktuellen lokalen Branch unmittelbar nach dem Herunterladen neuer Commits aus dem Remoterepository. Verwenden Sie Git Pull, wenn Sie wissen, dass Sie Ihren aktuellen lokalen Branch direkt nach Git Fetch aktualisieren möchten.
Tipp
So gehen Sie vor, um Visual Studio beim Pullen für die Verwendung eines Rebasevorgangs anstelle eines Mergevorgangs zu konfigurieren:
True
fest.Wählen Sie im Fenster Git-Änderungen die Option Pull aus.
Sie können Pull auch im Git-Menü auswählen.
Wenn der Pullvorgang abgeschlossen ist, wird eine Bestätigungsmeldung angezeigt.
Wenn beim Mergen im Rahmen des Pullvorgangs Konflikte auftreten, werden Sie von Visual Studio benachrichtigt. Sie können entweder Konflikte lösen oder den Mergevorgang abbrechen und zum Zustand vor dem Mergevorgang zurückkehren.
Hinweis
Durch den Sync-Befehl werden in Visual Studio ein Pull- und dann ein Push-Vorgang ausgeführt, um einen lokalen und einen Remotebranch zu synchronisieren. Weitere Informationen zur Verwendung der Synchronisierung finden Sie unter Verwenden der Git-Optionen zum Fetchen, Pullen, Pushen und Synchronisieren für die Versionskontrolle in Visual Studio.
Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenTraining
Modul
Verwenden von Branching und Merging mit Git für Business Central - Training
Möchten Sie mit verschiedenen Branches in Git arbeiten, um Ihren Entwicklungscode vom Produktionscode zu trennen? In diesem Modul besprechen wir, wie Sie mit Branches in Git arbeiten und Ihre Änderungen zusammenführen können.