Aktualisieren von Code mit Abrufen, Zusammenführen und Ziehen
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015
Wenn es mehrere Mitwirkende zu einem Projekt gibt, halten Sie Ihr lokales Git-Repo aktualisiert, indem Sie Arbeit herunterladen und integrieren, die andere in das Remote-Repo des Projekts hochgeladen haben. Diese Git-Befehle aktualisieren Ihr lokales Repo:
- Git ruft downloads alle neuen Commits ab, die andere in das Remote-Repo hochgeladen haben. Die Remoteverfolgungszweige im lokalen Repo-Cache werden aktualisiert– lokale Zweigen bleiben unverändert.
- Git Merge integriert Commits aus einer oder mehreren Quellzweigen in einen Zielzweig.
- Git rebase integriert Commits aus einem Quellzweig in einen Zielzweig, verwendet jedoch eine andere Strategie als Git-Zusammenführung.
- Git-Pull führt einen Abruf aus und führt dann eine Zusammenführung oder Rebase aus, um abgerufene Commits in Ihren aktuellen lokalen Zweig zu integrieren.
Visual Studio verwendet eine Teilmenge dieser Git-Befehle, wenn Sie Ihr lokales Repo mit einem Remote-Repo synchronisieren.
Eine Übersicht über den Git-Workflow finden Sie unter Azure Repos Git-Lernprogramm.
In diesem Artikel werden Verfahren für die folgenden Aufgaben bereitgestellt:
- Herunterladen von Änderungen mit Dem Abrufen
- Aktualisieren von Zweigen mit Zusammenführung oder Rebase
- Herunterladen von Änderungen und Aktualisieren von Zweigen mit Pull
Herunterladen von Änderungen mit Dem Abrufen
Git ruft Downloads von Remote branch Commits und referenzierten Dateiobjekten ab, die in Ihrem lokalen Repo nicht vorhanden sind und die Remoteverfolgungszweige im lokalen Repo-Cache aktualisiert. Remoteverfolgungszweige sind lokal zwischengespeicherte schreibgeschützte Kopien von Remotezweigen und sind nicht Ihre lokalen Zweigstellen. Git-Abruf aktualisiert Ihre lokalen Zweigstellen nicht. Wenn beispielsweise ein Remote-Repo, das von origin
einem bugfix3
Zweig bestimmt ist, aktualisiert Git-Abruf den Remoteverfolgungszweig namens origin/bugfix3
und nicht Ihre lokale bugfix3
Verzweigung. Sie können Remoteverfolgungszweige verwenden, um:
- Vergleichen Sie einen Remoteverfolgungszweig mit einem lokalen Zweig, um abgerufene Änderungen zu überprüfen.
- Zusammenführen eines Remoteverfolgungszweigs in einen lokalen Zweig.
- Erstellen Sie einen neuen lokalen Zweig aus einem Remoteverfolgungszweig.
Visual Studio Version 2019, Version 16.8 und höher, bietet eine Git-Versionssteuerungsumgebung, während sie die Git-Benutzeroberfläche des Team Explorers beibehalten. Um Team-Explorer zu verwenden, deaktivieren Sie ToolsOptionsPreview>>FeaturesNew>Git-Benutzeroberfläche aus der Menüleiste. Sie können Git-Features von beiden Schnittstellen austauschbar verwenden. Nachfolgend stellen wir einen querseitigen Vergleich zur Ausführung eines Git-Abrufs bereit.
Visual Studio Git
- Wählen Sie im Fenster "Git-Änderungen" die Option "Abrufen" aus. Wählen Sie dann ausgehend/eingehende Optionen 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.
Visual Studio Team Explorer
- Wählen Sie im Team-Explorer"Start" aus, und wählen Sie dann "Synchronisieren" aus, um die Synchronisierungsansicht zu öffnen.
- Wählen Sie in der Synchronisierungsansichtdie Option "Abrufen" aus. Beide Schaltflächen "Abrufen " führen dasselbe aus. Beim Herunterladen werden abgerufene Commits im Abschnitt "Eingehende Commits " angezeigt.
- Klicken Sie im Abschnitt "Eingehende Commits " mit der rechten Maustaste auf einen Commit, und wählen Sie dann "Commitdetails anzeigen " aus, um die geänderten Dateien anzuzeigen.
- Im Fenster "Commitdetails" werden die geänderten Dateien im Abschnitt "Änderungen " aufgeführt.
Doppelklicken Sie auf eine geänderte Datei, um eine Diff-Ansicht geänderter Inhalte zu öffnen.
Tipp
Abrufen löscht keine Remoteverfolgungszweige im lokalen Repo-Cache, die nicht mehr über ein Remoteabsprechen verfügen. So konfigurieren Sie Visual Studio, um verzweigte Remoteverfolgungszweige während eines Abrufs zu beschneiden:
- Wählen Sie "ToolsOptionsSource>>ControlGit>Global" Einstellungen aus.
- Legen Sie die Prune-Remotezweige während der Abrufoption auf
True
.
Nach einem Git-Abruf können Sie einen lokalen Zweig mit seinem entsprechenden Remoteverfolgungszweig vergleichen, um zu sehen, was sich auf der Remote branch geändert hat. Wenn Sie sich entscheiden, Ihren aktuellen lokalen Zweig mit abgerufenen Änderungen zu aktualisieren, können Sie einen Git-Seriendruck oder eine Neubasis ausführen. Oder Sie können Git-Pull ausführen, der einen Git-Abruf mit einem Git-Zusammenführen oder Rebase kombiniert. Sowohl git merge als auch Git rebase update a target branch by anwendungs commits from a source branch to it. Git-Zusammenführung und Git-Rebase verwenden jedoch verschiedene Strategien. Weitere Informationen finden Sie unter "Aktualisieren von Zweigen mit Zusammenführung oder Neubasis" und "When to rebase vs. merge".
Aktualisieren von Zweigen mit Zusammenführung oder Rebase
Git merge and Git rebase integration commits from a source branch in your current local branch (target branch). Die Git-Zusammenführung führt entweder einen Schnellvorlauf oder einen no-fast-forward Merge aus. Der Seriendruck ohne Schnelllauf wird auch als Drei-Wege-Zusammenführung oder true-Zusammenführung bezeichnet. Git Rebase ist ein weiterer Zusammenführungstyp. Diese Zusammenführungstypen werden im folgenden Diagramm angezeigt.
Git-Seriendruck und Git-Rebase werden im Git-Workflow umfassend verwendet. Bei der Arbeit an einem lokalen Feature oder Bugfix-Zweig ist es gängige Vorgehensweise:
- Halten Sie Ihre lokale
main
Verzweigung mit ihrem Remote-Gegenstück aktuell, indem Sie regelmäßig ziehen, um Remote-Commits abzurufen und zusammenzuführen. - Integrieren Sie lokale Verzweigungsupdates in Ihren lokalen
main
Featurezweig, indem Sie eine Rebase verwenden oder zusammenführen. - Sichern Sie Ihre Arbeit auf dem lokalen Featurezweig, indem Sie sie an die entsprechende Remotezweige pushen .
- Erstellen Sie auf Featureabschluss eine Pullanforderung , um Ihre Remotefeature-Branch in den Remotezweig
main
zusammenzuführen.
Dieser Ansatz hilft Ihnen:
- Achten Sie auf die aktuelle Arbeit anderer, die sich auf Ihre Arbeit auswirken könnten.
- Lösen Sie sofort Konflikte zwischen Ihrer Arbeit und dem anderer.
- Wenden Sie Ihr neues Feature oben auf aktuelle Projektinhalte an.
- Rufen Sie eine Pull-Anforderungsüberprüfung Ihrer Arbeit ab.
Merge
Bei Git-Seriendruck ist die Spitze des Zielzweigs innerhalb des Quellzweigs vorhanden, ist der Standarddrucktyp eine schnell weiterleitende Zusammenführung. Andernfalls ist der Standarddrucktyp kein Schnelldruck.
Ein Schnellweiterleitungs-Git-Seriendruck kann niemals einen Zusammenführungskonflikt haben, da Git keine schnell weiterleitende Zusammenführung anwenden wird, wenn der Tipp der Zielverzweigung von der Quellverzweigung abweichen wird. Standardmäßig verwendet Git eine schnell weiterleitende Zusammenführung, wenn möglich. Git wendet z. B. einen schnell weiterleitenden Zusammenführungsvorgang auf einer lokalen Verzweigung an, die Sie nur aktualisieren, indem Sie von der Remote-Entsprechungsverzweigung aus ziehen.
Bei einem Zusammenführen ohne Schnellweiterleitung wird ein neuer Zielzweig "Merge Commit" generiert, der Quellzweigänderungen in Zielzweigänderungen integriert. Die anwendbaren Änderungen sind diejenigen, die nach dem letzten Commit vorgenommen wurden, der für beide Verzweigungen üblich ist. Im vorherigen Diagramm ist commit C der letzte häufige Commit in beiden Verzweigungen. Wenn eine Änderung der Quellzweige mit einer Änderung der Zielzweige in Konflikt steht, werden Sie von Git aufgefordert, den Zusammenführungskonflikt zu beheben. Der Merge Commit (L) enthält die änderungen der integrierten Quellzweige und Zielzweigänderungen. Die Quell- und Zielzweigtipps (K und E) sind die Übergeordneten des Seriendruck-Commits. Im Commitverlauf Ihrer Verzweigung ist ein Zusammenführungs-Commit eine nützliche Markierung für einen Zusammenführungsvorgang und zeigt deutlich an, welche Verzweigungen zusammengeführt wurden.
Die Git-Zusammenführung ändert nur den Zielzweig– der Quellzweig bleibt unverändert. Wenn sie auf einen oder mehrere Zusammenführungskonflikte stoßen, müssen Sie sie auflösen, um den Zusammenführungsvorgang abzuschließen. Alternativ können Sie den Zusammenführungsvorgang abbrechen und den Zielzweig an den vorherigen Zustand zurückgeben.
Weitere Informationen zu Zusammenführungsoptionen und Strategien finden Sie im Git-Referenzhandbuch und in git-Zusammenführungsstrategien.
Tipp
Wenn es sich bei der Quellverzweigung um eine Remoteverfolgungsverzweigung handelt, stellen Sie sicher, dass verzweigt ist, indem Sie einen Git-Abruf vor dem Zusammenführen ausführen.
Visual Studio Version 2019, Version 16.8 und höher, bietet eine Git-Versionssteuerung während der Verwaltung der Git-Benutzeroberfläche des Team Explorers. Deaktivieren Sie zum Verwenden des Team-ExplorerstoolsOptionsPreview>>FeaturesNew>Git-Benutzeroberfläche über die Menüleiste. Sie können Git-Features von beiden Schnittstellen austauschbar verwenden. Nachfolgend stellen wir einen parallelen Vergleich zur Durchführung eines Git-Seriendrucks bereit.
Visual Studio Git
- Wählen Sie "Git > Manage Branches " aus der Menüleiste aus, um das Git-Repository-Fenster zu öffnen.
- Klicken Sie im Git-Repository-Fenster mit der rechten Maustaste auf den Zielzweig, 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 auflösen oder den Zusammenführungsvorgang abbrechen und zum Zustand vor der Zusammenführung zurückkehren.
Visual Studio Team Explorer
- Wählen Sie im Team-Explorer " Start" aus, und wählen Sie "Verzweigungen" aus.
- Klicken Sie in der Ansicht "Verzweigungen " mit der rechten Maustaste auf den Zielzweig, und wählen Sie " Auschecken" aus.
- Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Zusammenführen" aus.
- Überprüfen Sie die Seriendruckoptionen, und klicken Sie dann auf "Zusammenführen".
- Visual Studio zeigt nach einem erfolgreichen Zusammenführen eine Bestätigungsmeldung an.
Wenn während der Zusammenführung Konflikte auftreten, benachrichtigt Visual Studio Sie. Sie können die Konflikte entweder auflösen oder den Zusammenführungsvorgang abbrechen und zum Zustand vor der Zusammenführung zurückkehren.
Rebase
Git rebase resequences the commit history of the target branch so that it contains all source branch commits, gefolgt von allen Target Branch Commits seit dem letzten gemeinsamen Commit. Eine weitere Möglichkeit zum Anzeigen ist, dass eine Git-Basis die Änderungen in Ihrem Zielzweig oben im Quellzweigverlauf wiedergibt. Wenn eine Änderung der Quellzweige mit einer Änderung der Zielzweige in Konflikt steht, werden Sie von Git aufgefordert, den Zusammenführungskonflikt zu beheben. Git-Rebase erstellt keinen Seriendruck-Commit. Insbesondere ändert Git rebase die Sequenz 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, hat jedoch eine neue Commit-ID, da er zurück zum Commit E anstelle von C verknüpft.
Git rebase ändert nur die Zielverzweigung– die Quellverzweigung bleibt unverändert. Wenn sie auf einen oder mehrere Zusammenführungskonflikte stoßen, müssen Sie sie auflösen, um die Neubasis abzuschließen. Alternativ können Sie den Rebasevorgang abbrechen und den Zielzweig an den vorherigen Zustand zurückgeben.
Wenn Sie die einzige Person sind, die an Ihrem Feature oder Bugfix-Branch arbeitet, sollten Sie git rebase verwenden, um neue main
Verzweigungs-Commits darin zu integrieren. Verwenden Sie andernfalls git merge. Weitere Informationen zur Git-Neubasis und zur Verwendung finden Sie unter Anwenden von Änderungen mit Rebase und Rebasevs Merge.
Tipp
Wenn es sich bei der Quellverzweigung um eine Remotenachverfolgungsverzweigung handelt, stellen Sie sicher, dass verzweigt ist, indem Sie einen Git-Abruf vor der Neubasis ausführen.
Visual Studio Version 2019, Version 16.8 und höher, bietet eine Git-Versionssteuerung während der Verwaltung der Git-Benutzeroberfläche des Team Explorers. Deaktivieren Sie zum Verwenden des Team-ExplorerstoolsOptionsPreview>>FeaturesNew>Git-Benutzeroberfläche über die Menüleiste. Sie können Git-Features von beiden Schnittstellen austauschbar verwenden. Nachfolgend stellen wir einen parallelen Vergleich zur Durchführung einer Git-Neubasis bereit.
Visual Studio Git
- Wählen Sie Git > Manage Branches aus, um das Git-Repositoryfenster zu öffnen.
- Klicken Sie im Git-Repository-Fenster mit der rechten Maustaste auf den Zielzweig, und wählen Sie "Auschecken" aus.
- Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Zielverzweigung neu<" auf <"Quellverzweigung>>" aus.
- Visual Studio zeigt eine Bestätigungsmeldung nach einer erfolgreichen Neubasis an.
Wenn die Rebase aufgrund von Zusammenführungskonflikten angehalten wird, benachrichtigt Visual Studio Sie. Sie können die Konflikte entweder auflösen oder die Neubasis abbrechen und zum Vor-Neu-Basiszustand zurückkehren.
Visual Studio Team Explorer
- Wählen Sie im Team-Explorer " Start" aus, und wählen Sie "Verzweigungen" aus.
- Klicken Sie in der Ansicht "Verzweigungen " mit der rechten Maustaste auf den Zielzweig, und wählen Sie " Auschecken" aus.
- Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Neu auf" aus.
- Überprüfen Sie die Neubasisoptionen, und klicken Sie dann auf "Neubasis".
- Visual Studio zeigt eine Bestätigungsmeldung nach einer erfolgreichen Neubasis an.
Wenn während der Rebase Konflikte auftreten, benachrichtigt Visual Studio Sie. Sie können die Konflikte entweder auflösen oder die Neubasis abbrechen und zum Vor-Neu-Basiszustand zurückkehren.
Herunterladen von Änderungen und Aktualisieren von Zweigen mit Pull
Standardmäßig kombiniert Git-Pull einen Git-Abruf und einen Git-Seriendruck , um ihren aktuellen lokalen Zweig von seinem Remote-Pendant zu aktualisieren. Optional kann Git-Pull eine Git-Rebase 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-Repo. Verwenden Sie Git-Pull, wenn Sie wissen, dass Sie Ihren aktuellen lokalen Zweig direkt nach einem Git-Abruf aktualisieren möchten.
Visual Studio Version 2019, Version 16.8 und höher, bietet eine Git-Versionssteuerungsumgebung, während sie die Git-Benutzeroberfläche des Team Explorers beibehalten. Um Team-Explorer zu verwenden, deaktivieren Sie ToolsOptionsPreview>>FeaturesNew>Git-Benutzeroberfläche aus der Menüleiste. Sie können Git-Features von beiden Schnittstellen austauschbar verwenden. Nachfolgend stellen wir einen querseitigen Vergleich zur Ausführung eines Git-Pulls bereit.
Tipp
So konfigurieren Sie Visual Studio, um die Basis anstelle des Seriendrucks zu konfigurieren, wenn Sie Ziehen:
- Wechseln Sie im Git-Menü zu ToolsOptionsSource>>ControlGit>Global Einstellungen.
- Legen Sie beim Ziehen der Option " Lokale Verzweigung" den lokalen Zweig "Rebase " fest
True
.
Visual Studio Git
- Wählen Sie im Fenster "Git-Änderungen"die Option "Ziehen" aus.
Sie können auch aus dem Git-Menü Ziehen 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 auflösen oder den Zusammenführungszustand abbrechen und zum Vordruck zurückkehren.
Visual Studio Team Explorer
- Wählen Sie im Team-Explorer"Start" aus, und wählen Sie "Synchronisieren" aus, um die Synchronisierungsansicht zu öffnen.
- Wählen Sie in der Synchronisierungsansichtdie Option "Ziehen" aus. Beide Pull-Schaltflächen führen dasselbe aus.
- Visual Studio zeigt eine Bestätigungsmeldung an, 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 auflösen oder den Zusammenführungszustand abbrechen und zum Vordruck zurückkehren.
Hinweis
In Visual Studio führt die Synchronisierung einen Pull aus, um einen lokalen und Remotezweig zu synchronisieren. Weitere Informationen zur Synchronisierung finden Sie unter Verwenden von Git-Abrufen, Ziehen, Push und Synchronisierung für die Versionssteuerung in Visual Studio.