In dieser Lektion werden wir Folgendes tun:
- Erstellen Sie ein Remote-Repository
- Erstellen Sie eine lokale Kopie des Remote-Repositorys
- Erstellen Sie zwei Zweige in der lokalen Kopie
- Pushen Sie einen Zweig zum Remote-Repository
- Lokale Filialen löschen
- Entfernte Filialen löschen
Die Lektion sollte Ihnen ein allgemeines Verständnis des Erstellungs- und Löschvorgangs von Zweigen vermitteln, damit Sie die erforderlichen Schritte beim Löschen eines lokalen oder entfernten Zweigs gut beherrschen.
Lass uns anfangen.
1. Erstellen eines Remote-Repositorys
Erstellen wir einen Ordner namens project.git und initialize als Remote-Repository:
$ mkdir-Projekt.git$ CD-Projekt.git
$ git init -bare
Initialisiertes leeres Git-Repository in /Users/zak/_work/LearnGIT/git_delete_branch/project.git/
2. Erstellen einer lokalen Kopie des Remote-Repository
Erstellen wir an einem neuen Ort eine lokale Kopie namens project_local des Remote-Repositorys mit dem Befehl clone clone.
Hinweis: Wenn Sie mit GitHub oder BitBucket arbeiten, folgen Sie dem gleichen Vorgang, um das Repository zu klonen. In diesem Fall haben Sie einen SSH-Link anstelle des hier verwendeten vollständigen Dateipfads.
$ git clone /Users/zak/_work/LearnGIT/git_delete_branch/project.git project_localKlonen in 'project_local'…
Warnung: Sie scheinen ein leeres Repository geklont zu haben.
getan.
3. Verzweigungen innerhalb der lokalen Kopie erstellen
Fügen wir zuerst der lokalen Kopie eine Datei hinzu und verschieben Sie sie dann in das Remote-Repository:
$ cd project_local$ ReadMe berühren.TXT
$ git add -A
$ git commit -m "Initialisierung des Moduls"
[master (root-commit) 81eb2a3] Initialisieren des Moduls
1 Datei geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 ReadMe.TXT
$ git push origin master
Objekte zählen: 3, fertig.
Schreibobjekte: 100% (3/3), 221 Byte | 0 Byte/s, fertig.
Gesamt 3 (Delta 0), wiederverwendet 0 (Delta 0)
An /Users/zak/_work/LearnGIT/git_delete_branch/project.git
* [neuer Zweig] Master -> Master
In den obigen Befehlen haben wir eine Datei namens ReadMe erstellt.txt, fügte es der lokalen Kopie hinzu, legte es in die lokale Kopie fest und pushte dann die Änderungen an das Remote-Repository oder den Master-Branch des Ursprungs.
Wenn Sie die Branches überprüfen, sehen Sie den Master-Zweig in der lokalen Kopie:
$ git branch* Meister
Wenn Sie die Remote-Zweigs überprüfen, sehen Sie dort auch den Master-Zweig:
$ git branch -rHerkunft/Meister
Hinweis: Sie können die Option '-a' verwenden, um alle Zweige in lokalen und entfernten Repositorys zusammen anzuzeigen.
$ git branch -a* Meister
Fernbedienungen/Ursprung/Master
Lassen Sie uns zwei Zweige namens b1 und b2 aus dem Master-Zweig erstellen:
$ git branch b1$ git branch b2
Lassen Sie uns überprüfen, ob die Zweige erstellt wurden:
$ git branchb1
b2
* Meister
Jetzt werden wir einige Änderungen an den Zweigen vornehmen:
$ git checkout b1Auf Zweig 'b1' gewechselt
$ Zweigstelle1 berühren.TXT
$ git add -A
$ git commit -m "Änderung von Zweig1"
[b1 a2f488e] Branch1-Modifikation
1 Datei geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 branch1.TXT
$ git checkout b2
Wechsel in Filiale 'b2'
$ Zweigstelle berühren2.TXT
$ git add -A
$ git commit -m "Branch2-Modifikation"
[b2 2abb723] Branch2-Änderung
1 Datei geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 branch2.TXT
Lassen Sie uns den Status der lokalen und Remote-Zweigstellen überprüfen:
$ git branchb1
* b2
Meister
$ git branch -r
Herkunft/Meister
Wir können lokal sehen, dass wir drei Zweige master, b1 und b2 . haben. Aber wir haben nur den Master-Zweig im Remote-Repository.
4. Verzweigungen in ein Remote-Repository verschieben
Lassen Sie uns den b1-Zweig in das Remote-Repository verschieben:
$ git push origin b1Objekte zählen: 2, fertig.
Delta-Komprimierung mit bis zu 4 Threads.
Komprimieren von Objekten: 100% (2/2), fertig.
Schreibende Objekte: 100% (2/2), 249 Byte | 0 Byte/s, fertig.
Gesamt 2 (Delta 0), wiederverwendet 0 (Delta 0)
An /Users/zakh/_work/LearnGIT/git_delete_branch/project.git
* [neue Niederlassung] b1 -> b1
Sie können den Status der lokalen und entfernten Zweigstellen überprüfen:
$ git branchb1
* b2
Meister
$ git branch -r
Herkunft/b1
Herkunft/Meister
Aus den obigen Zweigstellenstatus können wir sehen, dass die b1-Zweigstelle auch aus der Ferne verfügbar ist.
5. Filialen lokal löschen
Sie können Zweige lokal mit der Option -d oder -D löschen.
git branch -dLassen Sie uns zuerst in den master-Zweig einchecken, damit wir die Zweige b1 und b2 löschen können.
$ git checkout masterAuf Zweig 'master' gewechselt
Ihre Filiale ist aktuell mit 'Herkunft/Master'.
Versuchen wir zuerst die Option -d, um den Zweig b1 zu löschen:
$ git branch -d b1Fehler: Der Zweig 'b1' ist nicht vollständig zusammengeführt.
Wenn Sie sicher sind, dass Sie es löschen möchten, führen Sie 'git branch -D b1' aus.
Der Fehler sagt Ihnen, dass Sie die Änderungen aus dem Zweig b1 zusammenführen müssen. Dies ist eine Absicherung, damit Sie nicht versehentlich Ihre Arbeit an Filialen verlieren. Sie können die Option -D verwenden, um das Löschen der Zusammenführung zu erzwingen. Aber in diesem Fall lassen Sie uns die Änderungen von b1 und b2 in master zusammenführen und in das Remote-Repository übertragen push.
$ git merge b1Aktualisieren von 81eb2a3… a2f488e
Schneller Vorlauf
Zweig1.txt | 0
1 Datei geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 branch1.TXT
$ git merge b2
Zusammenführung nach der 'rekursiven' Strategie.
Zweig2.txt | 0
1 Datei geändert, 0 Einfügungen (+), 0 Löschungen (-)
Modus erstellen 100644 branch2.TXT
$ git push origin master
Objekte zählen: 4, fertig.
Delta-Komprimierung mit bis zu 4 Threads.
Komprimieren von Objekten: 100% (4/4), fertig.
Schreibobjekte: 100% (4/4), 454 Byte | 0 Byte/s, fertig.
Gesamt 4 (Delta 1), wiederverwendet 0 (Delta 0)
An /Users/zak/_work/LearnGIT/git_delete_branch/project.git
81eb2a3… 34db496 Master -> Master
Versuchen Sie nun erneut, die Zweige zu löschen:
$ git branchb1
b2
* Meister
$ git branch -d b1
Gelöschter Zweig b1 (vorher a2f488e).
$ git branch -d b2
Gelöschter Zweig b2 (vorher 2abb723).
$ git branch
* Meister
Sie haben die Filialen b1 und b2 erfolgreich lokal gelöscht.
6. Löschen von entfernten Zweigen
Wenn Sie die Remote-Zweige überprüfen, sehen Sie immer noch b1 vorhanden:
$ git branch -rHerkunft/b1
Herkunft/Meister
Sie können den folgenden Befehl verwenden, um einen Remote-Zweig zu löschen:
git pushSo können Sie den entfernten b1-Zweig mit folgendem löschen:
$ git push origin --delete b1An /Users/zakh_eecs/_work/LearnGIT/git_delete_branch/project.git
- [gelöscht] b1
Wenn Sie nun Ihre Remote-Branches überprüfen, sollten Sie b1 nicht mehr sehen:
$ git branch -rHerkunft/Meister
Herzliche Glückwünsche! Sie haben alle von Ihnen erstellten Filialen erfolgreich gelöscht. Üben Sie, mehr Branches zu erstellen und zu löschen, um den Löschvorgang von Git-Zweigen zu meistern.
Weitere Studie:
- https://git-scm.com/book/de/v1/Git-Branching-What-a-Branch-Ist
- https://git-scm.com/book/de/v2/Git-Branching-Branches-in-a-Nutshell
- https://git-scm.com/book/de/v2/Git-Branching-Basic-Branching-and-Merging