Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Visual Studio 2019 | Visual Studio 2022
Wenn es mehrere Mitwirkende zu einem Projekt gibt, halten Sie Ihr lokales Git-Repository aktualisiert, indem Sie Arbeit herunterladen und integrieren, die andere in das Remote-Repository des Projekts hochgeladen haben. Diese Git-Befehle aktualisieren Ihr lokales Repository:
- Git ruft alle neuen Commits herunter, die andere in das Remote-Repository hochgeladen haben. Die Remoteverfolgungsverzweigungen im lokalen Repositorycache werden aktualisiert– lokale Verzweigungen bleiben unverändert.
- Git Merge integriert Commits aus einer oder mehreren Quellzweigen in eine Ziel-Verzweigung.
- Git rebase integriert Commits aus einer Quellverzweigung in eine Zielverzweigung, verwendet jedoch eine andere Strategie als Git Merge.
- Git Pull führt einen Abruf aus und führt dann einen Seriendruck oder eine Neubasis aus, um abgerufene Commits in Ihre aktuelle lokale Verzweigung zu integrieren.
Visual Studio verwendet eine Teilmenge dieser Git-Befehle, wenn Sie Ihr lokales Repository mit einem Remote-Repository synchronisieren .
Eine Übersicht über den Git-Workflow finden Sie im Lernprogramm zu Azure Repos Git.
Dieser Artikel enthält Verfahren für die folgenden Aufgaben:
- Herunterladen von Änderungen mit Abruf
- Aktualisieren von Verzweigungen mit Zusammenführung oder Neubasis
- Herunterladen von Änderungen und Aktualisieren von Verzweigungen mit Pull
Herunterladen von Änderungen mit Abruf
Git fetch lädt Commits vom Remote-Branch und referenzierte Dateielemente herunter, die nicht in Ihrem lokalen Repository existieren, und aktualisiert die Remote-Tracking-Branches im Cache des lokalen Repositories. Remotenachverfolgungsverzweigungen sind lokal zwischengespeicherte schreibgeschützte Kopien von Remoteverzweigungen und nicht Ihre lokalen Verzweigungen. Git fetch aktualisiert Ihre lokalen Verzweigungen nicht. Wenn z. B. ein von einer Verzweigung festgelegtes origin Remote-Repository vorhanden ist, aktualisiert Git Fetch den Remoteverfolgungszweig namens bugfix3 und nicht ihren lokalen origin/bugfix3 Zweig.bugfix3 Sie können Remote-Tracking-Verzweigungen verwenden, um:
- Vergleichen Sie eine Remoteverfolgungsverzweigung mit einer lokalen Verzweigung, um abgerufene Änderungen zu überprüfen.
- Führen Sie eine Remoteverfolgungsverzweigung in eine lokale Verzweigung zusammen.
- Erstellen Sie eine neue lokale Verzweigung aus einer Remoteverfolgungsverzweigung.
- Visual Studio 2022
- Visual Studio 2019 – Git-Menü
- Visual Studio 2019 – Team Explorer
- Git-Befehlszeile
Visual Studio 2022 bietet eine Git-Versionskontrolle mithilfe des Git-Menüs , Git-Änderungen und über Kontextmenüs im Projektmappen-Explorer. Visual Studio 2019, Version 16.8, bietet auch die Git-Benutzeroberfläche des Team Explorers . Weitere Informationen finden Sie auf der Registerkarte "Visual Studio 2019 – Team Explorer ".
Wählen Sie im Fenster "Git-Änderungen " die Option "Abrufen" aus. Wählen Sie dann ausgehend/eingehend aus, um das Git Repository-Fenster zu öffnen.
Sie können auch im Git-Menü "Abrufen" auswählen.
Im Git Repository-Fenster werden abgerufene Commits im Abschnitt "Eingehendes" 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 eine Diff-Ansicht geänderter Inhalte anzuzeigen.
Tipp
Fetch löscht keine Remoteverfolgungsverzweigungen im lokalen Repositorycache, die nicht mehr über ein Remoteentsprechung verfügen. So konfigurieren Sie Visual Studio so, dass veraltete Remoteverfolgungsverzweigungen während eines Abrufsentfernt werden:
- Wählen Sie "Extras>Options>Source Control>Git Global Settings" aus.
- Legen Sie die Prune-Remotezweige während des Abrufs auf
True.
Nach einem Git-Abruf können Sie eine lokale Verzweigung mit der entsprechenden Remoteverfolgungsverzweigung vergleichen, um zu sehen, was sich in der Remoteverzweigung geändert hat. Wenn Sie sich entscheiden, Ihre aktuelle lokale Verzweigung mit abgerufenen Änderungen zu aktualisieren, können Sie einen Git-Seriendruck oder eine Neubasis durchführen. Oder Sie können Git-Pull ausführen, das einen Git-Abruf mit einem Git-Seriendruck oder einer Neubasis kombiniert. Sowohl git merge and Git rebase update a target branch by applying commits from a source branch to it. Git Merge und Git Rebase verwenden jedoch unterschiedliche Strategien. Weitere Informationen finden Sie unter Update branches with merge or rebase and When to rebase vs. merge.
Aktualisieren von Verzweigungen mit Zusammenführung oder Neubasis
Git merge and Git rebase integration commits from a source branch into your current local branch (Target Branch). Die Git-Zusammenführung führt entweder eine Schnell- oder eine Schnell-Vorwärts-Zusammenführung aus. Der Seriendruck ohne Schnelleinführung wird auch als "Drei-Wege-Zusammenführung " oder "True Merge" bezeichnet. Git-Neubasis ist eine andere Art von Zusammenführung. Diese Zusammenführungstypen werden im folgenden Diagramm dargestellt.
Git merge and Git rebase are extensive used in the Git workflow. Bei der Arbeit an einem lokalen Feature oder bugfix Branch ist es üblich, Folgendes zu beachten:
- Halten Sie Ihre lokale
mainVerzweigung mit ihrem Remoteentsprechung aktuell, indem Sie regelmäßig Ziehen , um Remote-Commits abzurufen und zusammenzuführen. -
mainIntegrieren Sie lokale Verzweigungsupdates in Ihre lokale Featureverzweigung mithilfe einer Neubasis oder Zusammenführung. - Sichern Sie Ihre Arbeit an der lokalen Feature-Verzweigung, indem Sie sie an die entsprechende Remote-Verzweigung übertragen .
- Erstellen Sie nach Abschluss des Features eine Pullanforderung , um Ihren Remotefeature-Branch in der Remote-Verzweigung
mainzusammenzuführen.
Dieser Ansatz hilft Ihnen bei:
- Behalten Sie die aktuellen Arbeiten anderer Personen in Kenntnis, die sich auf Ihre Arbeit auswirken könnten.
- Lösen Sie umgehend Alle Konflikte zwischen Ihrer Arbeit und der von anderen.
- Wenden Sie Das neue Feature oben auf up-to-Datum Projektinhalt an.
- Rufen Sie eine Pull-Anforderungsüberprüfung Ihrer Arbeit ab.
Merge
Wenn bei Git Merge der Tipp der Zielverzweigung innerhalb der Quellverzweigung vorhanden ist, handelt es sich bei dem Standarddrucktyp um einen schnellen Seriendruck. Andernfalls ist der Standarddrucktyp ein Seriendruck ohne Schnelleinführung.
Bei einer schnell weitergeleiteten Git-Zusammenführung kann niemals ein Zusammenführungskonflikt auftreten, da Git keine Schnellweiterleitungszusammenführung anwendet, wenn sich der Tipp der Zielverzweigung von der Quellverzweigung unterscheidet. Standardmäßig verwendet Git einen schnellen Zusammenführungsvorgang, wenn möglich. Git wendet z. B. einen Schnellweiterleitungszusammenführung auf eine lokale Verzweigung an, die Sie nur aktualisieren, indem Sie von der Remote-Entsprechungsverzweigung aus ziehen.
Bei einem Git-Zusammenführen ohne Schnelleinführung wird ein neuer "Merge Commit" für die Zielverzweigung generiert, der Änderungen an Quellverzweigungen in Zielverzweigungen integriert. Die anwendbaren Änderungen sind diejenigen, die nach dem letzten Commit vorgenommen wurden, der für beide Verzweigungen gilt. Im vorherigen Diagramm ist Commit C der letzte gemeinsame Commit in beiden Verzweigungen. Wenn eine Änderung des Quellzweigs mit einer Änderung der Zielzweigung in Konflikt steht, werden Sie von Git aufgefordert, den Zusammenführungskonflikt zu beheben. Der Zusammenführungs-Commit (L) enthält die Änderungen an der integrierten Quell-Verzweigung und Ziel-Verzweigung. Die Quell- und Zielzweigtipps (K und E) sind die übergeordneten Elemente des Zusammenführungs-Commits. Im Commitverlauf Ihrer Verzweigung ist ein Zusammenführungs-Commit ein nützlicher Marker für einen Zusammenführungsvorgang und zeigt eindeutig an, welche Verzweigungen zusammengeführt wurden.
Die Git-Zusammenführung ändert nur den Zielzweig– der Quellzweig bleibt unverändert. Wenn ein oder mehrere Zusammenführungskonflikte auftreten, müssen Sie sie auflösen, um die Zusammenführung abzuschließen. Alternativ können Sie den Zusammenführungsvorgang abbrechen und die Ziel-Verzweigung an den vorherigen Zustand zurückgeben.
Weitere Informationen zu Zusammenführungsoptionen und -strategien finden Sie im Git-Referenzhandbuch und den Git-Zusammenführungsstrategien.
Tipp
Wenn es sich bei der Quellverzweigung um eine Remoteverfolgungsverzweigung handelt, stellen Sie sicher, dass verzweigt up-to-date ist, indem Sie einen Git-Abruf vor dem Seriendruck ausführen.
- Visual Studio 2022
- Visual Studio 2019 – Git-Menü
- Visual Studio 2019 – Team Explorer
- Git-Befehlszeile
Wählen Sie git > Manage Branches in der Menüleiste aus, um das Git Repository-Fenster zu öffnen.
Klicken Sie im Git-Repository-Fenster mit der rechten Maustaste auf die Zielverzweigung, und wählen Sie "Auschecken" aus.
Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Quellverzweigung zusammenführen" in <"Zielverzweigung><" >aus.
Visual Studio zeigt nach einem erfolgreichen Zusammenführen eine Bestätigungsmeldung an.
Wenn die Zusammenführung aufgrund von Zusammenführungskonflikten angehalten wird, benachrichtigt Visual Studio Sie. Sie können die Konflikte entweder lösen oder den Zusammenführungsvorgang abbrechen und zum Zustand vor dem Zusammenführen zurückkehren.
Rebase
Git rebase resequences the commit history of the target branch so that it contains all source branch commits, followed by all target branch commits since the last common commits. Eine weitere Möglichkeit zum Anzeigen ist, dass eine Git-Basis die Änderungen in Ihrer Zielverzweigung über dem Quellverzweigungsverlauf wiedergibt. Wenn eine Änderung des Quellzweigs mit einer Änderung der Zielzweigung in Konflikt steht, werden Sie von Git aufgefordert, den Zusammenführungskonflikt zu beheben. Git-Neubasis erstellt keinen Zusammenführungs-Commit. Insbesondere ändert Git die Reihenfolge der vorhandenen Zielverzweigungs-Commits, was nicht für die anderen Zusammenführungsstrategien der Fall ist. Im vorherigen Diagramm enthält commit K' die gleichen Änderungen wie K, verfügt aber über eine neue Commit-ID, da sie mit dem Commit E anstelle von C verknüpft wird.
Git ändert nur die Zielverzweigung– die Quellverzweigung bleibt unverändert. Wenn ein oder mehrere Zusammenführungskonflikte auftreten, müssen Sie sie auflösen, um die Neubasis abzuschließen. Alternativ können Sie den Rebase-Vorgang abbrechen und die Zielverzweigung an den vorherigen Zustand zurückgeben.
Wenn Sie die einzige Person sind, die an Ihrem Feature oder Bugfix Branch arbeitet, sollten Sie die Git-Neubasis verwenden, um neue main Verzweigungs-Commits darin zu integrieren. Verwenden Sie andernfalls Git Merge. Weitere Informationen zur Git-Neubasis und deren Verwendung finden Sie unter Anwenden von Änderungen mit Rebase und Rebase vs Merge.
Tipp
Wenn es sich bei der Quellverzweigung um eine Remoteverfolgungsverzweigung handelt, stellen Sie sicher, dass Verzweigung up-to-date ist, indem Sie einen Git-Abruf vor der Neubasis ausführen.
- Visual Studio 2022
- Visual Studio 2019 – Git-Menü
- Visual Studio 2019 – Team Explorer
- Git-Befehlszeile
Wählen Sie Git > Manage Branches aus, um das Git Repository-Fenster zu öffnen.
Klicken Sie im Git-Repository-Fenster mit der rechten Maustaste auf die Zielverzweigung, und wählen Sie "Auschecken" aus.
Klicken Sie mit der rechten Maustaste auf den Quellverzweigung, und wählen Sie "Zielverzweigung< neu" >auf <"Source-Branch" aus>.
Visual Studio zeigt nach einer erfolgreichen Neubasis eine Bestätigungsmeldung an.
Wenn die Basis aufgrund von Zusammenführungskonflikten angehalten wird, benachrichtigt Visual Studio Sie. Sie können entweder die Konflikte lösen oder die Basis abbrechen und zum Zustand vor der Neubasis zurückkehren.
Herunterladen von Änderungen und Aktualisieren von Verzweigungen mit Pull
Standardmäßig kombiniert Git Pull einen Git-Abruf und einen Git-Merge , um Ihren aktuellen lokalen Zweig von seinem Remote-Gegenstück zu aktualisieren. Optional kann Git Pull eine Git-Neubasis anstelle eines Git-Seriendrucks ausführen.
Im Gegensatz zum Git-Abruf aktualisiert Git Pull Ihre aktuelle lokale Verzweigung unmittelbar nach dem Herunterladen neuer Commits aus dem Remote-Repository. Verwenden Sie Git-Pull, wenn Sie wissen, dass Sie Ihren aktuellen lokalen Zweig direkt nach einem Git-Abruf aktualisieren möchten.
Tipp
So konfigurieren Sie Visual Studio so, dass sie beim Pull-Ziehen nicht zusammenführen, sondern eine Neueinführung durchführen:
- Wechseln Sie im Git-Menü zu "Tools>Options>Source Control>Git Global Settings".
- Legen Sie die lokale Verzweigung "Rebase" beim Ziehen auf
True.
- Visual Studio 2022
- Visual Studio 2019 – Git-Menü
- Visual Studio 2019 – Team Explorer
- Git-Befehlszeile
Wählen Sie im Fenster "Git-Änderungen " die Option "Pull" aus.
Sie können auch " Pull " aus dem Git-Menü auswählen.
Eine Bestätigungsmeldung wird angezeigt, wenn der Pullvorgang abgeschlossen ist.
Wenn während des Zusammenführungsteils des Pullvorgangs Konflikte auftreten, benachrichtigt Visual Studio Sie. Sie können die Konflikte entweder lösen oder den Zusammenführungsvorgang abbrechen und zum Zustand vor dem Zusammenführen zurückkehren.
Hinweis
In Visual Studio führt Sync einen Pull aus und führt dann einen Push aus, um eine lokale und Remote-Verzweigung zu synchronisieren. Weitere Informationen zur Synchronisierung finden Sie unter Verwenden von Git Fetch, Pull, Push und Synchronisierung für die Versionssteuerung in Visual Studio.