Das Zusammenführen von Branches in Git kann manchmal eine anspruchsvolle Aufgabe sein, aber der Befehl git merge
vereinfacht den Prozess erheblich. In diesem Tutorial lernen Sie die Grundlagen des Zusammenführens von Branches mit git merge
, kombiniert mit GitHub, einem führenden Projektmanagement-Tool.
Beginnen wir diese Reise in die Welt von Git und GitHub und konzentrieren uns auf den leistungsstarken Befehl git merge
.
Voraussetzungen für das Meistern von Git Merge
Bevor Sie sich in die Details von git merge
vertiefen, stellen Sie sicher, dass Sie die folgende Einrichtung haben:
- Git (Version 2.25.1 in diesem Tutorial verwendet) – Herunterladen von der offiziellen Git-Website.
- A GitHub account – Sign up at GitHub.
- Ein Ubuntu-Rechner (hier wird Ubuntu 20.04 verwendet, aber jedes Betriebssystem mit Git ist ausreichend).
Initialisieren eines Projekts für Git Merge
Um git merge
effektiv zu nutzen, benötigen Sie zunächst ein Git-Projekt. Lassen Sie uns ein Demo-Projekt für die Übung einrichten.
1. Beginnen Sie damit, ein neues Verzeichnis mit dem Namen ~/git-demo zu erstellen und in dieses zu wechseln:
2. Erstellen Sie eine index.html-Datei im Verzeichnis ~/git-demo mit dem folgenden Inhalt. Diese einfache HTML-Datei zeigt eine Nachricht über den Einstieg mit git merge
.
3. Initialisieren Sie ein neues Git-Repository in Ihrem Projektverzeichnis:
Der Befehl
git init
wird verwendet, um ein bestehendes, nicht versioniertes Projekt in ein Git-Repository zu konvertieren oder ein neues Projekt mit Git zu starten.

4. Bestätige die Erstellung des .git-Ordners in deinem Projektverzeichnis. In diesem Ordner verfolgt Git Änderungen:

5. Führe den Befehl git add
aus, um deine Änderungen im Projekt zu stagen. Durch das Stagen der Datei index.html bereitest du sie für den nächsten Commit im Git-Workflow vor.
6. Verwende git status
, um zu bestätigen, dass deine Datei korrekt gestaged ist. Dieser Befehl bietet eine Momentaufnahme des aktuellen Zustands deines Arbeitsverzeichnisses.

7. Commite dann deine Änderungen mit git commit
. Dieser Befehl speichert deine gestagten Änderungen im lokalen Repository und markiert einen wichtigen Schritt in deiner Versionsgeschichte.

Setze deine Git-Identität mit:
git config --global user.email "[email protected]"
undgit config --global user.name "Dein Name"
, wenn du Git zum ersten Mal verwendest.
8. Überprüfe deine Commit-Historie mit git log
. Dieser Befehl hilft dir, Änderungen nachzuverfolgen und ist entscheidend, wenn du dich auf einen git merge
vorbereitest.

9. Bestätige die Existenz von Branches in deinem Repository mit git branch
. Dieser Schritt ist wichtig, bevor du einen git merge
durchführst.
Hinweis: Der Standard-Branch heißt in neueren Git-Versionen ‚main‘ und ersetzt ‚master‘.

Erstellen eines Branches für den Git Merge
Mit Ihrer initialen Git-Einrichtung abgeschlossen und dem ersten Commit erstellt, ist es an der Zeit, einen neuen Branch zu erstellen. Dieser Branch wird verwendet, um den git merge
-Prozess effektiv zu demonstrieren.
1. Aktualisieren Sie die Datei index.html mit neuem Inhalt, um Änderungen in Ihrem Branch zu demonstrieren. Diese Version enthält Benutzereingabefelder, die auf eine Demonstration von git merge
vorbereitet sind.
2. Überprüfen Sie den Status Ihres Repositorys mit git status
, um die Änderungen in index.html anzuzeigen. Es sollte angezeigt werden, dass die Datei geändert und nicht gebunden ist und somit für die nächsten Schritte im git merge
-Prozess bereit ist.

3. Erstellen Sie einen neuen Branch mit dem Namen „form“ mit git checkout -b form
. Dieser Befehl erstellt nicht nur den neuen Branch, sondern wechselt auch Ihren Arbeitsbranch zu „form“, was für die Implementierung von git merge
wesentlich ist.

4. Bestätigen Sie die Erstellung des neuen Branches, indem Sie git branch
ausführen. Sie sollten nun sowohl die „form“ als auch die „master“-Branches sehen, wobei „form“ als aktiver Branch durch ein Sternchen (*) angezeigt wird.

5. Stellen Sie Ihre Änderungen im form-Branch bereit und committen Sie sie. Diese Aktion stellt sicher, dass der form-Branch die kürzlich vorgenommenen Updates an der index.html-Datei widerspiegelt und somit die Grundlage für ein effektives git merge
bildet.

Merging von lokalen Branches mit Git Merge
Jetzt, da Sie verschiedene Branches in Ihrem GitHub-Repository haben, ist der nächste Schritt, sie zu mergen. Dieser Abschnitt konzentriert sich auf das Zusammenführen von Branches lokal unter Verwendung des git merge
-Befehls, einer grundlegenden Git-Operation.
1. Um den Merge zu beginnen, wechseln Sie zum master
-Branch, der die Updates aus dem form
-Branch erhalten wird:
2. Sobald Sie sich auf dem master
-Branch befinden, führen Sie git merge form
aus, um die Änderungen aus dem form
-Branch in master
zu kombinieren. Dies ist ein entscheidender Schritt im git merge
-Prozess.

git merge
.3. Bestätigen Sie den Merge, indem Sie sicherstellen, dass Sie sich auf dem master
-Branch befinden und überprüfen, ob der Inhalt von index.html aktualisiert wurde.

git merge
.Vereinfachung mit Git Squash
Squashen in Git ist eine Technik, um die Commit-Historie aufzuräumen. Wenn Sie mehrere Commit-Nachrichten haben, die einzeln nicht benötigt werden, ermöglicht das Squashen, diese zu einem einzigen, umfassenden Commit zusammenzuführen. Diese Praxis ist besonders nützlich, wenn Sie sich auf einen git merge
vorbereiten.
Lassen Sie uns den Squash-Prozess erkunden, indem wir weitere Änderungen an der index.html-Datei auf dem form
-Branch vornehmen und diese dann squashen.
1. Wechseln Sie zurück zum form
-Zweig, um weitere Änderungen vorzunehmen:
2. Ändern Sie die index.html, indem Sie einen Formularkopf hinzufügen. Dieser Schritt wird eine Änderung erzeugen, die wir später beim Zusammenführen (merge) zusammendrücken werden:
3. Erfassen und committen Sie die Änderungen mit einer klaren Nachricht, die die Aktualisierung beschreibt:

git merge
.4. Verbessern Sie die index.html im form
-Zweig, indem Sie ein neues Eingabefeld hinzufügen. Diese Änderung ist Teil der Vorbereitung auf einen effektiven git merge
.
5. Erfassen und committen Sie diese Änderungen mit einer deutlichen Nachricht, um sicherzustellen, dass jeder Schritt Ihrer Arbeit klar dokumentiert ist für den bevorstehenden git merge
.

git merge
.6. Fügen Sie als nächstes ein Absatz-Element unter das Formular in index.html ein und modifizieren Sie die Datei weiter zur Vorbereitung auf einen git merge
.
7. Erfassen und committen Sie erneut die Änderungen, und verwenden Sie eine Nachricht, die das Wesentliche dieses Updates einfängt, was für den git merge
-Prozess entscheidend ist.

git merge
.8. Verwenden Sie git rebase
im interaktiven Modus, um Ihre letzten Commits anzuzeigen und zu bearbeiten. Dieser Schritt ist wesentlich im Prozess des Zusammenfassens von Commits für einen sauberen git merge
.
9. Im interaktiven Modus wählen Sie, den ersten Commit zu reword
en und die nachfolgenden zu squash
en. Diese Aktion konsolidiert Ihren Commit-Verlauf und macht Ihren git merge
sauberer und organisierter.

git merge
.10. Nach dem Umformulieren und Speichern aktualisieren Sie die zusammengefasste Commit-Nachricht, um die kumulierten Änderungen widerzuspiegeln. Dieser Schritt finalisiert den Prozess des Zusammenpressens (squashing), der Sie für einen reibungslosen git merge
vorbereitet.

git merge
.Bestätigen Sie den Erfolg Ihrer Zusammenführungsoperation, die ein integraler Bestandteil des Prozesses git merge
ist, wenn mehrere Commit-Nachrichten verarbeitet werden.

git squash
operation.Für gleichzeitiges Zusammenführen und Zusammenfassen verwenden Sie git merge --squash
. Diese Technik fusioniert und komprimiert den Formular-Zweig in den Master-Zweig und kombiniert dabei effizient die Commits.
Die Ausführung des Befehls git merge --squash
kombiniert die Änderungen aus dem Formular
-Zweig in den Master
-Zweig und verdichtet dabei alle Commits zu einem einzigen. Dieser Ansatz ist Teil effektiver git merge
-Strategien.

git merge
with squash option.Implementierung von Fast-Forward in Git Merge
Für eine optimierte Commit-Historie ist das Vorspulen eine ideale Methode, insbesondere für kleinere Updates oder Fehlerkorrekturen. Es ermöglicht das Zusammenführen von Zweigen ohne zusätzliche Zusammenführungs-Commits und gewährleistet eine saubere und lineare Historie, die für effiziente git merge
-Prozesse entscheidend ist.
Das Vorspulen erfolgt, wenn es keine Abweichungen im Ausgangszweig gibt, normalerweise dem Master
, was eine nahtlose Integration der Historien und Zeigeraktualisierungen ermöglicht.
1. Wechseln Sie zum Formular
-Zweig, um den Vorspulprozess zu starten:
2. Erstellen und aktualisieren Sie eine JavaScript-Datei, wie z. B. index.js, im Formular
-Zweig, indem Sie die Änderungen in den Staging-Bereich überführen und committen:
3. Schließlich fusionieren Sie den Formular
-Zweig in den Master
unter Verwendung eines Vorspulansatzes. Dieser Schritt bringt den Master-Zweig auf den neuesten Stand der Änderungen aus dem Formular-Zweig und erzeugt einen reibungslosen, linearen git merge
-Pfad.

Zusammenfassung
Dieses Tutorial hat Sie durch verschiedene Techniken geführt, um Branches mit `git merge` zu kombinieren. Von Commit-Squashing bis hin zum Fast-Forwarding verbessern diese Methoden Ihre Fähigkeit, Projekte gemeinsam in Git zu verwalten.
Nun, ausgestattet mit diesen Fähigkeiten, sollten Sie in Betracht ziehen, zu kollaborativen Projekten auf GitHub beizutragen und Ihr Wissen über `git merge` in realen Szenarien anzuwenden.