Git Master in den Zweig ziehen
- Git Pull Master in einen anderen Branch übernehmen
-
Verwenden Sie den
git merge
-Befehl, um Änderungen vonmaster
in einen anderen Branch zu übernehmen -
Verwenden Sie den
git rebase
-Befehl, um Änderungen vonmaster
in einen anderen Branch zu übernehmen -
Verwenden Sie den Befehl
git pull
, um Änderungen vonmaster
in einen anderen Branch zu übernehmen - Fazit
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.
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
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 Sieorigin
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.
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 has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
LinkedIn