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

  1. 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.

Screenshot of the Fetch buttons and Incoming link in the Git Changes window of Visual Studio 2019.

Sie können auch im Git-Menü "Abrufen" auswählen.

Screenshot of the Fetch option in the Git menu in Visual Studio 2019.

  1. 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.

Screenshot of the Git Repository menu in Visual Studio 2019.

Visual Studio Team Explorer

  1. Wählen Sie im Team-Explorer"Start" aus, und wählen Sie dann "Synchronisieren" aus, um die Synchronisierungsansicht zu öffnen.

Screenshot of the Sync option within Team Explorer in Visual Studio 2019.

  1. 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.

Screenshot of the Fetch button in the Synchronization view of Team Explorer in Visual Studio 2019.

  1. 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.

Screenshot of the context menu for incoming commits in the Synchronization view of Team Explorer in Visual Studio 2019.

  1. Im Fenster "Commitdetails" werden die geänderten Dateien im Abschnitt "Änderungen " aufgeführt.

Screenshot of the Commit Details window within Visual Studio 2019.

Doppelklicken Sie auf eine geänderte Datei, um eine Diff-Ansicht geänderter Inhalte zu öffnen.

Screenshot of a file diff window in Visual Studio 2019.

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.

Diagram showing the before and after commits when using merge and rebase.

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:

  1. Halten Sie Ihre lokale main Verzweigung mit ihrem Remote-Gegenstück aktuell, indem Sie regelmäßig ziehen, um Remote-Commits abzurufen und zusammenzuführen.
  2. Integrieren Sie lokale Verzweigungsupdates in Ihren lokalen main Featurezweig, indem Sie eine Rebase verwenden oder zusammenführen.
  3. Sichern Sie Ihre Arbeit auf dem lokalen Featurezweig, indem Sie sie an die entsprechende Remotezweige pushen .
  4. 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

  1. Wählen Sie "Git > Manage Branches " aus der Menüleiste aus, um das Git-Repository-Fenster zu öffnen.

Screenshot of the Manage Branches option in the Git menu of Visual Studio 2019.

  1. Klicken Sie im Git-Repository-Fenster mit der rechten Maustaste auf den Zielzweig, und wählen Sie "Auschecken" aus.

Screenshot of the Checkout option in the Git Repository window of Visual Studio 2019.

  1. Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Quellverzweigung zusammenführen" in <"Zielverzweigung>>" <aus.

Screenshot of the Merge option in the Git Repository window of Visual Studio 2019.

  1. Visual Studio zeigt nach einem erfolgreichen Zusammenführen eine Bestätigungsmeldung an.

Screenshot of the merge confirmation message in the Git Repository window of Visual Studio 2019.

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.

Screenshot of the merge conflict message in the Git Repository window of Visual Studio 2019.

Visual Studio Team Explorer

  1. Wählen Sie im Team-Explorer " Start" aus, und wählen Sie "Verzweigungen" aus.

Screenshot of the Branches option in Team Explorer in Visual Studio 2019.

  1. Klicken Sie in der Ansicht "Verzweigungen " mit der rechten Maustaste auf den Zielzweig, und wählen Sie " Auschecken" aus.

Screenshot of the Checkout option in the Branches view of Team Explorer in Visual Studio 2019.

  1. Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Zusammenführen" aus.

Screenshot of the Merge From option in the Branches view of Team Explorer in Visual Studio 2019.

  1. Überprüfen Sie die Seriendruckoptionen, und klicken Sie dann auf "Zusammenführen".

Screenshot of the merge details in the Branches view of Team Explorer in Visual Studio 2019.

  1. Visual Studio zeigt nach einem erfolgreichen Zusammenführen eine Bestätigungsmeldung an.

Screenshot of the merge confirmation message in the Branches view of Team Explorer in Visual Studio 2019.

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.

Screenshot of the merge conflict message in the Branches view of Team Explorer in Visual Studio 2019.

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

  1. Wählen Sie Git > Manage Branches aus, um das Git-Repositoryfenster zu öffnen.

Screenshot of the Manage Branches option in the Git menu of Visual Studio 2019.

  1. Klicken Sie im Git-Repository-Fenster mit der rechten Maustaste auf den Zielzweig, und wählen Sie "Auschecken" aus.

Screenshot of the Checkout option in the branch context menu in the Git Repository window of Visual Studio 2019.

  1. Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Zielverzweigung neu<" auf <"Quellverzweigung>>" aus.

Screenshot of the Rebase option in the branch context menu in the Git Repository window of Visual Studio 2019.

  1. Visual Studio zeigt eine Bestätigungsmeldung nach einer erfolgreichen Neubasis an.

Screenshot of the rebase confirmation message in the Git Repository window of Visual Studio 2019.

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.

Screenshot of the rebase conflict message in the Git Repository window of Visual Studio 2019.

Visual Studio Team Explorer

  1. Wählen Sie im Team-Explorer " Start" aus, und wählen Sie "Verzweigungen" aus.

Screenshot of the Branches option in Team Explorer in Visual Studio 2019.

  1. Klicken Sie in der Ansicht "Verzweigungen " mit der rechten Maustaste auf den Zielzweig, und wählen Sie " Auschecken" aus.

Screenshot of the Checkout option in the Branches view of Team Explorer in Visual Studio 2019.

  1. Klicken Sie mit der rechten Maustaste auf den Quellzweig, und wählen Sie "Neu auf" aus.

Screenshot of the Rebase Onto option in the Branches view of Team Explorer in Visual Studio 2019.

  1. Überprüfen Sie die Neubasisoptionen, und klicken Sie dann auf "Neubasis".

Screenshot of the rebase details in the Branches view of Team Explorer in Visual Studio 2019.

  1. Visual Studio zeigt eine Bestätigungsmeldung nach einer erfolgreichen Neubasis an.

Screenshot of the rebase confirmation message in the Branches view of Team Explorer in Visual Studio 2019.

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.

Screenshot of the rebase conflict message in the Branches view of Team Explorer in Visual Studio 2019.

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:

  1. Wechseln Sie im Git-Menü zu ToolsOptionsSource>>ControlGit>Global Einstellungen.
  2. Legen Sie beim Ziehen der Option " Lokale Verzweigung" den lokalen Zweig "Rebase " fest True.

Visual Studio Git

  1. Wählen Sie im Fenster "Git-Änderungen"die Option "Ziehen" aus.

Screenshot of the Pull button in the Git Changes window of Visual Studio 2019.

Sie können auch aus dem Git-Menü Ziehen auswählen.

Screenshot of the Pull option in the Git menu in Visual Studio 2019.

  1. Eine Bestätigungsmeldung wird angezeigt, wenn der Pullvorgang abgeschlossen ist.

Screenshot of the pull confirmation message in the Git Changes window in Visual Studio 2019.

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.

Screenshot of the pull conflict message in the Git Changes window in Visual Studio 2019.

Visual Studio Team Explorer

  1. Wählen Sie im Team-Explorer"Start" aus, und wählen Sie "Synchronisieren" aus, um die Synchronisierungsansicht zu öffnen.

Screenshot of the Sync option in Team Explorer in Visual Studio 2019.

  1. Wählen Sie in der Synchronisierungsansichtdie Option "Ziehen" aus. Beide Pull-Schaltflächen führen dasselbe aus.

Screenshot of the Pull options in the Synchronization view of Team Explorer in Visual Studio 2019.

  1. Visual Studio zeigt eine Bestätigungsmeldung an, wenn der Pullvorgang abgeschlossen ist.

Screenshot of the pull confirmation message in the Synchronization view of Team Explorer in Visual Studio 2019.

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.

Screenshot of the pull conflict message in the Synchronization view of Team Explorer in Visual Studio 2019.

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.

Nächste Schritte