Ich habe zwei Zweige: Master und Dev
Ich möchte einen "Feature-Zweig" aus dem Entwickler- Zweig erstellen .
Derzeit mache ich auf dem Branch Dev:
$ git checkout -b myfeature dev
... (etwas Arbeit)
$ git commit -am "blablabla"
$ git push origin myfeature
Aber nachdem ich meine Zweige visualisiert hatte, bekam ich:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Ich meine, der Zweig scheint verschmolzen zu sein, und ich verstehe nicht warum ...
Was mache ich falsch?
Können Sie mir bitte erklären, wie Sie von einem anderen Zweig abzweigen und zum Remote-Repository für den Feature-Zweig zurückkehren?
All das in einem Verzweigungsmodell wie dem hier beschriebenen .
quelle
myFeature
nachdem es mit Witz verschmolzen wurdedev
?myFeature
Zweig vor dem Zusammenführen auf den Server verschoben wurde, dann nichts. Wenn diesmyFeature
jedoch noch nicht auf den Server übertragen wurde und Sie möchten, dass es auf dem Server angezeigt wird, müssen Sie es passend verschieben.git checkout -b myFeature dev
das gleiche wie diese 3 Befehle:git checkout dev
danngit branch myFeature
und danngit checkout myFeature
?--no-ff
Zusammenführung so ausWenn Sie einen neuen Zweig aus einem der vorhandenen Zweige in Git erstellen möchten, folgen Sie einfach den Optionen.
Zuerst in den Zweig wechseln / auschecken, von dem aus Sie einen neuen Zweig erstellen möchten. Zum Beispiel, wenn Sie die folgenden Zweige haben wie:
Wenn Sie also einen neuen Zweig mit dem Namen "subbranch_of_b1" unter dem Zweig "branch1" erstellen möchten, gehen Sie folgendermaßen vor:
Zur Kasse gehen oder in "branch1" wechseln
Erstellen Sie nun Ihren neuen Zweig mit dem Namen "subbranch_of_b1" unter "branch1" mit dem folgenden Befehl.
Mit dem obigen Befehl wird ein neuer Zweig mit dem Namen subbranch_of_b1 unter dem Zweig branch1 erstellt (beachten Sie, dass
branch1
der obige Befehl nicht obligatorisch ist, da der HEAD derzeit darauf verweist. Sie können ihn jedoch präzisieren, wenn Sie sich in einem anderen Zweig befinden).Nachdem Sie mit der Subbranch_of_b1 gearbeitet haben , können Sie sie lokal oder remote festschreiben und pushen oder zusammenführen.
Schieben Sie die Unterzweig_von_b1 auf Remote
quelle
git checkout -b some-branch
eine Abkürzung istgit checkout -b some-branch master
. Es stellt sich heraus, dassgit checkout -b some-branch
die Abkürzung fürgit checkout -b some-branch <current_active_branch>
Erstellen Sie einen Zweig
$ git branch branch1
$ git branch branch2
Kasse einer Filiale
Der Befehl git checkout wechselt zwischen Zweigen oder stellt funktionierende Baumdateien wieder her
$ git checkout branchname
Zweig umbenennen
$ git branch -m branch1 newbranchname
Löschen Sie einen Zweig
$ git branch -d branch-to-delete
$ git branch -D branch-to-delete
( Löschen erzwingen, ohne den zusammengeführten Status zu überprüfen )Zweig erstellen und wechseln
$ git checkout -b branchname
Zweige, die vollständig enthalten sind
$ git branch --merged
************************** Branchendifferenzen [git diff branch1..branch2] ************** **********
Mehrzeiliger Unterschied$ git diff master..branch1
$ git diff --color-words branch1..branch2
quelle
git push origin :old-name new-name
löschen Sie den Remote-Zweig mit dem alten Namen und drücken den lokalen Zweig mit dem neuen Namen.Arbeiten Sie gleichzeitig am
dev
Zweig. In Ihrem Szenario bewegt sich der Feature-Zweig von der Spitze des Dev-Zweigs nach vorne, der Dev-Zweig ändert sich jedoch nicht. Es ist einfacher, als gerade Linie zu zeichnen, da dies als Vorwärtsbewegung angesehen werden kann. Sie haben es geschafft, Punkt A auf dev zu zeigen, und von dort aus sind Sie einfach auf einem parallelen Pfad weitergegangen. Die beiden Zweige sind nicht wirklich auseinander gegangen.Wenn Sie nun vor dem Zusammenführen ein Commit für dev vornehmen, beginnen Sie erneut mit demselben Commit A, aber jetzt gehen die Funktionen zu C und dev zu B. Dies zeigt die Aufteilung, die Sie als Zweige visualisieren möchten sind jetzt auseinander gegangen.
Gegen
quelle
Git 2.23 führt die Verantwortlichkeiten von ein
git switch
undgit restore
teilt sie aufgit checkout
Erstellen eines neuen Zweigs aus einem vorhandenen Zweig ab Git 2.23:
git switch -c my-new-branch
Zu einem neuen Zweig gewechselt 'Mein-neuer-Zweig'
Schauen Sie sich diesen Github-Blog-Beitrag an, in dem die Änderungen ausführlicher erläutert werden:
quelle
Um einen Zweig aus einem anderen Zweig in Ihrem lokalen Verzeichnis zu erstellen, können Sie den folgenden Befehl verwenden.
Zum Beispiel:
quelle
Wenn Sie einen Zweig aus einem anderen Zweig erstellen möchten, gehen Sie wie folgt vor:
Annahmen :
BranchExisting
ist der Name des Zweigs, aus dem Sie einen neuen Zweig mit Namen erstellen müssenBranchMyNew
.Schritte :
Holen Sie sich den Zweig auf Ihren lokalen Computer.
Dieser Befehl erstellt einen neuen Zweig in Ihrem lokalen Zweig mit demselben Zweignamen.
Nun von der Hauptzweigkasse zum neu abgerufenen Zweig
Sie befinden sich jetzt in BranchExisting. Erstellen Sie nun einen neuen Zweig aus diesem vorhandenen Zweig.
Bitte schön!
quelle
Zum Erstellen eines Zweigs aus einem anderen kann auch diese Syntax verwendet werden:
Es ist etwas kürzer als "git checkout -b" + "git push origin"
quelle