Grundlagen von Git Branching
Die Fähigkeit, sich einfach zu verzweigen, ist eine der besten Eigenschaften von Git. Das Erstellen von Verzweigungen in anderen Versionskontrollsystemen kann in Bezug auf Platz und Verarbeitungsaufwand teuer sein. Git-Branching ist effizient. Benutzer neigen also eher dazu, Branches in Git . zu verwenden.
Ein verzweigter Workflow
Nehmen wir an, du hast ein neues Projekt namens myvideogame gestartet. Es hat einen einzigen Zweig. Der Standardname des ersten Branchs in Git heißt master. Es wird automatisch erstellt. Lass uns das myvideogame Git-Repository erstellen.
$ mkdir meinvideospiel$ cd meinvideospiel
$ git init
Sie haben ein leeres Git-Repository erstellt. Fügen wir unser Design hinzu add.txt-Datei mit etwas Text darin.
$ echo "Designentscheidung 1: Bilder hinzufügen" >> design.TXT$ echo "Entwurfsentscheidung 2: Code schreiben" >> design.TXT
$ git add -A
$ git commit -m "C0: Designdatei hinzugefügt"
Lassen Sie uns noch einige Änderungen hinzufügen:
$ echo "Design Decision 3: Test Game" >> design.TXT$ git add -A
$ git commit -m "C1: Modifizierte Designdatei"
Wenn Sie den Verlauf überprüfen, finden Sie Folgendes:
$ git log --oneline6a09bd6 C1: Modifizierte Konstruktionsdatei
5f18d89 C0: Designdatei hinzugefügt
Wenn Sie den Git-Status und alle erstellten Branches überprüfen (mit dem Befehl: git branch -a), sehen Sie:
$git-StatusAuf Zweigmeister
nichts zu begehen, Arbeitsverzeichnis sauber
$ git branch -a
* Meister
Aktuell haben Sie folgende Situation:
Du hast zwei Commits im Master-Branch gemacht.
Nehmen wir an, Sie haben beim Testen des Spiels Fehler gefunden, möchten das Problem jedoch nicht im Master-Zweig ansprechen, weil Sie sich noch nicht mit dem ursprünglichen Design herumschlagen möchten. So können Sie einen neuen Branch namens bugfix erstellen:
$ Git-Zweig-BugfixWenn Sie nun alle Zweige überprüfen:
$ git branch -aFehlerbehebung
* Meister
Jetzt haben Sie einen neuen Zweig namens bugfix erstellt. Die Situation kann man sich so vorstellen:
Der Stern (*) neben dem Master-Zweig bedeutet jedoch, dass Sie sich noch im Master befinden. Wenn Sie Änderungen vornehmen, wird es immer noch in den Master-Zweig verschoben. Sie können den Checkout-Befehl verwenden, um Zweige zu ändern:
$ git checkout-BugfixAuf Zweig 'bugfix' umgestellt
Sie können mit dem Status- oder "branch -a"-Befehl überprüfen, welchen Branch Sie verwenden:
$git-StatusAuf Zweig-Bugfix
nichts zu begehen, Arbeitsverzeichnis sauber
$ git branch -a
* Fehlerbehebung
Meister
Beheben wir nun den Fehler:
$ echo "Bug Fix 1" >> Design.TXT$ git add -A
$ git commit -m "C2: Fehler behoben 1"
Sie haben eine Situation wie diese geschaffen:
Der Master-Zweig hat nicht die C2-Änderung. Sie können dies leicht überprüfen, indem Sie die Historie der beiden Zweige überprüfen.
Zuerst die Geschichte des Bugfix-Zweigs:
$git-StatusAuf Zweig-Bugfix
nichts zu begehen, Arbeitsverzeichnis sauber
$ git log --oneline
e8f615b C2: Fehler behoben 1
6a09bd6 C1: Modifizierte Konstruktionsdatei
5f18d89 C0: Designdatei hinzugefügt
Dann können Sie zum Master-Branch wechseln und seinen Verlauf überprüfen:
$ git checkout masterAuf Zweig 'master' gewechselt
$git-Status
Auf Zweigmeister
nichts zu begehen, Arbeitsverzeichnis sauber
$ git log --oneline
6a09bd6 C1: Modifizierte Konstruktionsdatei
5f18d89 C0: Designdatei hinzugefügt
Sie können sehen, dass der Master-Zweig nicht die Änderungen aus dem Bugfix-Zweig enthält.
Sie können jederzeit eine neue Filiale aus der aktuellen Filiale erstellen, in der Sie sich befinden. Angenommen, Sie möchten einen weiteren Zweig erstellen, der experimentelle Funktionen enthält. Sie können den Branch aus dem Master erstellen und ihm experimentelle Funktionen hinzufügen:
$git-StatusAuf Zweigmeister
nichts zu begehen, Arbeitsverzeichnis sauber
$ git branch experimentell
$ git checkout experimentell
Zu Zweig "experimentell" gewechselt
$git-Status
Auf Zweig experimentell
nichts zu begehen, Arbeitsverzeichnis sauber
$ echo "Experimentfunktionen hinzufügen" >> design.TXT
$ git add -A
$ git commit -m "C3: Experimentelle Funktionen hinzugefügt"
[experimentell 637bc20] C3: Experimentelle Funktionen hinzugefügt
1 Datei geändert, 1 Einfügung (+)
Wenn Sie den Verlauf Ihres experimentellen Zweigs überprüfen, sehen Sie Folgendes:
$git-StatusAuf Zweig experimentell
nichts zu begehen, Arbeitsverzeichnis sauber
$ git log --oneline
637bc20 C3: Experimentelle Funktionen hinzugefügt
6a09bd6 C1: Modifizierte Konstruktionsdatei
5f18d89 C0: Designdatei hinzugefügt
Sie werden feststellen, dass Sie den C2-Commit nicht haben, der im Bugfix-Zweig erstellt wurde. Da der experimentelle Branch aus dem Master-Branch erstellt wird, werden die Bugfix-Änderungen nicht angezeigt. Sie haben folgende Situation:
Fazit
Herzliche Glückwünsche! Du hast gelernt zu verzweigen.
Git Branches sind einfach und schnell zu erstellen. Dies ist einer der Gründe für die Popularität von Git. Wenn Sie ein erfahrener Git-Benutzer werden möchten, müssen Sie sich mit Git-Branching vertraut machen.
Weitere Studie:
https://git-scm.com/book/de/v2/Git-Branching-Basic-Branching-and-Merging