Git Master in den Zweig ziehen

Yahya Irmak 13 September 2023
  1. Git Pull Master in einen anderen Branch übernehmen
  2. Verwenden Sie den git merge-Befehl, um Änderungen von master in einen anderen Branch zu übernehmen
  3. Verwenden Sie den git rebase-Befehl, um Änderungen von master in einen anderen Branch zu übernehmen
  4. Verwenden Sie den Befehl git pull, um Änderungen von master in einen anderen Branch zu übernehmen
  5. Fazit
Git Master in den Zweig ziehen

Beim Entwickeln von Software mit dem Git-Tool können Sie verschiedene Branches für verschiedene Funktionen erstellen. Wenn Sie Änderungen am Master vornehmen, werden diese Änderungen nicht automatisch zu anderen Branches hinzugefügt.

Dieser Artikel erläutert, wie Sie alle Änderungen vom Master in einen anderen Branch in Git übernehmen können.

Git Pull Master in einen anderen Branch übernehmen

Bei der Verwendung des Git-Tools müssen Sie möglicherweise die Änderungen, die Sie im Master vorgenommen haben, in einen anderen Branch übernehmen. Diese Änderungen werden nicht automatisch übertragen, daher müssen Sie sie manuell machen.

Im Folgenden wird erläutert, wie Sie Änderungen von master in den dev-Branch auf drei verschiedene Arten übernehmen können.

Hinweis
Da dies als entmenschlichend gegenüber versklavten Personen angesehen werden kann, wurde der Master-Branch in main umbenannt.

Verwenden Sie den git merge-Befehl, um Änderungen von master in einen anderen Branch zu übernehmen

Eine andere Möglichkeit, dies zu erreichen, besteht darin, den git merge-Befehl zu verwenden.

Schritt 1: Wechseln Sie zum master-Branch

Beginnen Sie damit, zum master-Branch zu wechseln. Dies können Sie mit dem git checkout-Befehl tun:

git checkout master

Dieser Befehl stellt sicher, dass Sie sich auf dem master-Branch befinden, der die Quelle der Änderungen ist, die Sie in Ihren Feature-Branch übernehmen möchten.

Schritt 2: Aktualisieren Sie die neuesten Änderungen

Vor dem Merging ist es wichtig sicherzustellen, dass Ihr lokaler master-Branch auf dem aktuellen Stand des entfernten master-Branches ist. Verwenden Sie dazu den git pull-Befehl:

git pull origin master

Dieser Befehl lädt die neuesten Änderungen aus dem entfernten master-Branch herunter und merge sie in Ihren lokalen master-Branch.

Schritt 3: Wechseln Sie zu Ihrem Feature-Branch

Wechseln Sie nun zu Ihrem Feature-Branch, in den Sie die Änderungen übernehmen möchten. Verwenden Sie den git checkout-Befehl und ersetzen Sie feature-branch durch den tatsächlichen Namen Ihres Feature-Branches:

git checkout feature-branch

Schritt 4: Mergen Sie master in Ihren Feature-Branch

Nachdem Ihr Feature-Branch ausgecheckt ist, können Sie die Änderungen vom master-Branch in diesen mit dem git merge-Befehl übernehmen:

git merge master

Ein genauerer Blick auf git merge

Der git merge-Befehl wird verwendet, um Änderungen von einem Branch in einen anderen zu integrieren. In diesem Fall mergen wir die Änderungen von master in Ihren Feature-Branch.

Git erstellt automatisch einen neuen Merge-Commit, wenn es neue Änderungen in beiden Branches gibt, seit sie divergiert sind. Wenn es keine konkurrierenden Änderungen gibt, verläuft das Merging problemlos.

Schritt 5: Konflikte auflösen (falls vorhanden)

Wenn Git während des Mergings auf Konflikte stößt, pausiert es und zeigt an, welche Dateien Konflikte haben. Sie müssen diese Dateien öffnen, die Konfliktmarkierungen finden und entscheiden, wie Sie diese auflösen möchten. Sobald Sie die Konflikte aufgelöst haben, speichern Sie die Dateien.

Nach dem Auflösen von Konflikten in einer Datei markieren Sie sie als aufgelöst mit dem git add-Befehl:

git add <conflicted-file>

Wiederholen Sie diesen Vorgang für jede Datei mit Konflikten.

Schritt 6: Das Merge committen

Nachdem Sie alle Konflikte aufgelöst und die Dateien als aufgelöst markiert haben, committen Sie das Merge mit einer aussagekräftigen Commit-Nachricht:

git commit -m "Merge branch 'master' into feature-branch"

Diese Commit-Nachricht beschreibt die Merging-Operation für zukünftige Referenz.

Schritt 7: Den aktualisierten Feature-Branch pushen

Jetzt, da Sie erfolgreich die Änderungen vom master-Branch in Ihren Feature-Branch gemergt haben, pushen Sie den aktualisierten Feature-Branch in das entfernte Repository:

git push origin feature-branch

Verwenden Sie den git rebase-Befehl, um Änderungen von master in einen anderen Branch zu übernehmen

Eine andere Möglichkeit, dies zu erreichen, besteht darin, den git rebase-Befehl zu verwenden. Wir werden Sie durch den Prozess des Verwendens von git rebase führen, um Änderungen vom master-Branch in einen anderen Branch zu übernehmen.

Schritt 1: Wechseln Sie zum master-Branch

Beginnen Sie damit, zum master-Branch zu wechseln. Dies können Sie mit dem git checkout-Befehl tun:

git checkout master

Dieser Befehl stellt sicher, dass Sie sich auf dem master-Branch befinden, von dem Sie die Änderungen in Ihren Feature-Branch übernehmen möchten.

Schritt 2: Aktualisieren Sie die neuesten Änderungen

Vor dem Rebasen ist es wichtig sicherzustellen, dass Ihr lokaler master-Branch auf dem aktuellen Stand des entfernten master-Branches ist. Verwenden Sie dazu den git pull-Befehl:

git pull origin master

Dieser Befehl lädt die neuesten Änderungen aus dem entfernten master-Branch herunter und merge sie in Ihren lokalen master-Branch.

Schritt 3: Wechseln Sie zu Ihrem Feature-Branch

Wechseln Sie nun zu Ihrem Feature-Branch, in den Sie die Änderungen übernehmen möchten. Verwenden Sie den git checkout-Befehl und ersetzen Sie dev durch den tatsächlichen Namen Ihres Feature-Branches:

git checkout dev

Schritt 4: Rebasen Sie dev auf master

Mit dem ausgecheckten Feature-Branch können Sie ihn nun auf den aktualisierten master-Branch zurückbasisieren. Verwenden Sie den Befehl git rebase, gefolgt vom Namen des Branches, auf den Sie zurückbasieren möchten, d.h. in diesem Fall master:

git rebase master

Git wird automatisch die Commits Ihres Feature-Branches auf den master-Branch anwenden. Während dieses Vorgangs, wenn es Konflikte zwischen Ihren Änderungen und den Änderungen im master gibt, wird Git den Rebase anhalten und Sie auffordern, diese Konflikte manuell zu lösen.

Der Befehl git rebase ist ein leistungsfähiges Werkzeug zum Umschreiben der Commit-Historie.

Wenn Sie git rebase master in diesem Zusammenhang ausführen, nimmt Git die gesamte Commit-Historie Ihres Feature-Branches (beginnend von dem Punkt, an dem er sich vom master-Branch verzweigt hat) und spielt jeden Commit auf dem aktuellen master-Branch wieder ab.

Dies verschiebt im Wesentlichen Ihren Feature-Branch zur Spitze von master, als ob Sie ihn aus dem aktuellen Zustand des master-Branches erstellt hätten.

Einer der Vorteile der Verwendung von git rebase gegenüber git merge besteht darin, dass dies zu einer linearen Commit-Historie führt, was das Verständnis und die Navigation erleichtert.

Da jedoch die Commit-Historie umgeschrieben wird, ist es wichtig, es sorgfältig zu verwenden, insbesondere in Kollaborationsumgebungen.

Schritt 5: Konflikte auflösen (falls vorhanden)

Wenn Git während des Rebase auf Konflikte stößt, wird es pausieren und Ihnen anzeigen, welche Dateien Konflikte haben. Sie müssen diese Dateien öffnen, die Konfliktmarkierungen finden und entscheiden, wie Sie diese auflösen möchten. Sobald Sie die Konflikte gelöst haben, speichern Sie die Dateien.

Nachdem Sie alle Konflikte in einer Datei aufgelöst haben, markieren Sie diese als gelöst mit dem Befehl git add:

git add <conflicted-file>

Wiederholen Sie diesen Vorgang für jede Datei mit Konflikten.

Schritt 6: Den Rebase fortsetzen

Nachdem Sie alle Konflikte gelöst und die Dateien als gelöst markiert haben, können Sie den Rebase mit dem folgenden Befehl fortsetzen:

git rebase --continue

Git wird die verbleibenden Commits von Ihrem Feature-Branch auf den master-Branch anwenden.

Schritt 7: Den aktualisierten Feature-Branch pushen

Nun, da Sie Ihren Feature-Branch erfolgreich auf den master-Branch zurückbasisiert haben, können Sie den aktualisierten Feature-Branch auf das entfernte Repository pushen:

git push origin dev

git fetch rebase

Verwenden Sie den Befehl git pull, um Änderungen von master in einen anderen Branch zu übernehmen

Gehen wir die Schritte durch, um git pull zu verwenden, um Ihren Arbeitsbranch mit Änderungen vom main-Branch zu aktualisieren.

Schritt 1: Wechsele zu deinem Arbeitsbranch

Beginnen Sie damit, zum Branch zu wechseln, den Sie mit Änderungen von main aktualisieren möchten. Sie können den Befehl git checkout verwenden, um dies zu tun. Ersetzen Sie feature-branch durch den Namen Ihres Arbeitsbranches:

git checkout feature-branch

Dieser Befehl stellt sicher, dass Sie auf dem Branch sind, den Sie aktualisieren möchten.

Schritt 2: Änderungen von main übernehmen

Nun, da Sie auf Ihrem Arbeitsbranch sind, können Sie den Befehl git pull verwenden, um die neuesten Änderungen aus dem main-Branch abzurufen und zusammenzuführen.

Der Befehl git pull ist eine Kombination aus zwei Git-Befehlen: git fetch und git merge. Er ruft Änderungen aus einem entfernten Repository ab und integriert sie in Ihren aktuellen Branch.

git pull origin main --allow-unrelated-histories

Hier ist, was jeder Teil dieses Befehls bewirkt:

  • git pull: startet den Pull-Vorgang.
  • origin: der Standardname des entfernten Repositories. Wenn Sie mit einem anderen Remote arbeiten, ersetzen Sie origin durch dessen Namen.
  • main: der Branch, von dem Sie Änderungen abrufen möchten. Falls erforderlich, können Sie einen anderen Branchnamen angeben.
  • --allow-unrelated-histories: Diese Option erlaubt es Git, nicht verwandte Historien zusammenzuführen, was nützlich sein kann, wenn Sie Branches kombinieren, die unterschiedliche Commit-Historien haben.

Verständnis von --allow-unrelated-histories

Die Option --allow-unrelated-histories ist notwendig, wenn Sie Änderungen von einem Branch abrufen möchten, der eine andere Commit-Historie als Ihr aktueller Branch hat.

Dies kann auftreten, wenn Sie Änderungen von einem Branch zusammenführen oder abrufen, der unabhängig erstellt wurde oder keinen gemeinsamen Vorgänger mit Ihrem aktuellen Branch hat.

Durch die Verwendung von --allow-unrelated-histories teilen Sie Git mit, dass der Merge trotz fehlendem klaren gemeinsamen Startpunkt der Commit-Historien durchgeführt werden soll. Es ist eine Möglichkeit, nicht verwandte Branches in einen einzigen Branch zu integrieren.

Schritt 3: Konflikte auflösen (falls vorhanden)

Während des Zusammenführungsprozesses kann Git Konflikte identifizieren, wenn sich Änderungen in Ihrem Arbeitsbranch und im main-Branch überlappen oder widersprüchlich sind. Wenn Konflikte auftreten, wird Git pausieren und anzeigen, welche Dateien Konflikte haben.

Um Konflikte zu lösen, öffnen Sie die konfliktierenden Dateien in Ihrem Code-Editor. In diesen Dateien sehen Sie Abschnitte, die durch Konfliktmarkierungen wie <<<<<<<, ======= und >>>>>>> gekennzeichnet sind. Bearbeiten Sie die Datei manuell, um auszuwählen, welche Änderungen beibehalten und welche verworfen werden sollen.

Nachdem Sie Konflikte in einer Datei gelöst haben, speichern Sie die Änderungen.

Schritt 4: Konflikte als gelöst markieren

Sobald Sie Konflikte in einer Datei gelöst haben, müssen Sie diese mit dem Befehl git add als gelöst markieren. Ersetzen Sie <konfliktierte-datei> durch den tatsächlichen Dateinamen:

git add <conflicted-file>

Wiederholen Sie diesen Vorgang für jede Datei mit Konflikten.

Schritt 5: Merge bestätigen

Nachdem Sie Konflikte gelöst und die Dateien als gelöst markiert haben, müssen Sie den Merge mit einer aussagekräftigen Commit-Nachricht bestätigen:

git commit -m "Merge changes from main into feature-branch"

Diese Commit-Nachricht sollte den Zweck des Merges für spätere Referenzen beschreiben.

Schritt 6: Aktualisierten Branch pushen

Schließlich pushen Sie die Änderungen, die Sie auf Ihrem Arbeits-Branch vorgenommen haben, in das Remote-Repository:

git push origin feature-branch

Dieser Befehl stellt sicher, dass die Änderungen im Remote-Repository gespeichert werden und anderen Teammitgliedern zugänglich sind, wenn Sie an dem Projekt zusammenarbeiten.

git pull

Fazit

In der Softwareentwicklung ist es üblich, verschiedene Branches für verschiedene Features oder Bugfixes zu führen. Es ist jedoch wichtig, diese Branches mit den neuesten Änderungen aus dem main-Branch auf dem neuesten Stand zu halten, um später einen reibungslosen Integrationsprozess zu gewährleisten.

In diesem Artikel haben wir drei verschiedene Möglichkeiten untersucht, um Änderungen aus dem main-Branch in einen anderen Branch zu pullen: Verwendung von git merge, git rebase und git pull. Jede Methode hat ihre Vorteile und Anwendungsfälle.

Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

Verwandter Artikel - Git Pull