Aktualisieren von Code mit Abrufen, Zusammenführen und Ziehen
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018
Visual Studio 2019 | Visual Studio 2022
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 2022
- Visual Studio 2019 – Git-Menü
- Visual Studio 2019 – Team-Explorer
- Git-Befehlszeile
Visual Studio 2022 bietet eine Git-Versionssteuerungserfahrung mithilfe des Git-Menüs, Git-Änderungen und über Kontextmenüs in 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 "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.
Tipp
Abrufen löscht keine Remoteverfolgungszweige im lokalen Repo-Cache, die nicht mehr über ein Remoteabsprechen verfügen. So konfigurieren Sie Visual Studio so, dass sie während eines Abrufs stale Remoteverfolgungszweige beschneiden:
- Wählen Sie "Tools"-Optionen> für das >Quellsteuerelement>Git Global Settings 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.
Zusammenführen
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 schnell weiterleitender Git-Seriendruck kann niemals einen Zusammenführungskonflikt haben, da Git keinen Schnelldruck anwenden wird, wenn sich die Spitze des Zielzweigs vom Quellzweig abweicht. Standardmäßig verwendet Git eine schnelle Zusammenführung, wenn möglich. Git wendet z. B. einen Schnelldruck auf einem lokalen Zweig an, den Sie nur aktualisieren, indem Sie von seinem Remote-Entsprechungszweig abrufen.
Ein nicht schnell weiterleitender Git-Zusammenführen generiert einen neuen Zielzweig "Merge Commit", der Quellzweigänderungen mit Zielzweigänderungen integriert. Die anwendbaren Änderungen sind diejenigen, die nach dem letzten Commit vorgenommen wurden, der für beide Zweige üblich ist. Im vorherigen Diagramm ist commit C der letzte häufige Commit in beiden Zweigen. Wenn sich alle Quellzweigänderungen mit einer Zielzweigänderung ändern, wird Git aufgefordert, den Zusammenführungskonflikt zu beheben. Der Merge Commit (L) enthält die integrierten Quellzweig- und Zielzweigänderungen. Die Quell- und Zielzweigtipps (K und E) sind die Eltern des Merge-Commits. Im Commitverlauf Ihres Zweigs ist ein Zusammenführungs-Commit ein nützlicher Marker für einen Zusammenführungsvorgang und zeigt klar an, welche Verzweigungen zusammengeführt wurden.
Git Merge ä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. Oder Sie können 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 der Quellzweig ein Remoteverfolgungszweig ist, stellen Sie sicher, dass branch auf dem neuesten Stand ist, indem Sie einen Git-Abruf vor dem Zusammenführen ausführen.
- Visual Studio 2022
- Visual Studio 2019 – Git-Menü
- Visual Studio 2019 – Team-Explorer
- Git-Befehlszeile
Wählen Sie "Git > Verwalten von Zweigen " aus der Menüleiste aus, um das Git-Repositoryfenster zu öffnen.
Klicken Sie im Git-Repositoryfenster 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 "Quellzweig zusammenführen<" in <Zielzweig>> aus.
Visual Studio zeigt eine Bestätigungsmeldung nach einer erfolgreichen Zusammenführung an.
Wenn die Zusammenführung aufgrund von Zusammenführungskonflikten beendet wird, benachrichtigt Visual Studio Sie. Sie können die Konflikte entweder auflösen oder den Zusammenführungszustand abbrechen und zum Vordruck zurückkehren.
Rebase
Git rebaset den Commitverlauf des Zielzweigs erneut, sodass es alle Quellzweig-Commits enthält, gefolgt von allen Zielzweig-Commits seit dem letzten gemeinsamen Commit. Eine andere Möglichkeit zum Anzeigen ist, dass eine Git-Basis die Änderungen in Ihrem Zielzweig oben im Quellzweigverlauf erneut wiedergegeben. Wenn sich alle Quellzweigänderungen mit einer Zielzweigänderung ändern, wird Git aufgefordert, den Zusammenführungskonflikt zu beheben. Git-Rebase erstellt keinen Seriendruck-Commit. Insbesondere ändert Git rebase die Sequenz der vorhandenen Zielzweig-Branch-Commits, was nicht der Fall für die anderen Zusammenführungsstrategien 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 statt C verknüpft.
Git rebase ä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 die Rebase abzuschließen. Oder Sie können den Rebasevorgang abbrechen und den Zielzweig an den vorherigen Zustand zurückgeben.
Wenn Sie die einzige Person sind, die an Ihrem Feature oder Bugfix-Zweig arbeitet, sollten Sie git rebase verwenden, um neue main
Branch-Commits darin zu integrieren. Andernfalls verwenden Sie Git-Seriendruck. Weitere Informationen zur Git-Rebase und zum Verwenden finden Sie unter Anwenden von Änderungen mit Rebase und Rebasevs Merge.
Tipp
Wenn der Quellzweig ein Remoteverfolgungszweig ist, stellen Sie sicher, dass branch auf dem neuesten Stand ist, indem Sie einen Git-Abruf vor der Rebase 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-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 nach einer erfolgreichen Neubasis eine Bestätigungsmeldung an.
Wenn die Neubasis 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.
Herunterladen von Änderungen und Aktualisieren von Verzweigungen mit Pull
Standardmäßig kombiniert Git-Pull einen Git-Abruf und einen Git-Seriendruck , um Ihre aktuelle lokale Verzweigung von seinem Remote-Gegenstück zu aktualisieren. Optional kann Git-Pull anstelle eines Git-Seriendrucks eine Git-Rebase 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.
Tipp
So konfigurieren Sie Visual Studio so, dass sie nicht zusammenführen, wenn Sie ziehen:
- Wechseln Sie im Git-Menü zu "Tools>Options>Source Control>Git Global Settings".
- Legen Sie beim Ziehen der Option " Lokale Verzweigung rebase" fest
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 auflösen oder den Zusammenführungsvorgang abbrechen und zum Zustand vor der Zusammenführung zurückkehren.
Hinweis
In Visual Studio führt Sync einen Pull aus , um einen lokalen und Remotezweig zu synchronisieren. Weitere Informationen zur Synchronisierung finden Sie unter Verwenden von Git-Abruf, Pull, Push und Synchronisierung für die Versionssteuerung in Visual Studio.