Erstellen eines Zweigs in Git aus einem anderen Zweig

Ich habe zwei Zweige: master und dev

Ich möchte einen "Feature-Zweig" aus dem dev-Zweig erstellen.

Derzeit auf dem Zweig dev, tue ich:

$ 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, dass der Zweig scheinbar nicht zusammengeführt wurde, und ich verstehe nicht, warum...

Was mache ich falsch?

Können Sie mir bitte erklären, wie man von einem anderen Zweig abzweigt und den Feature-Zweig in das Remote-Repository zurückschiebt?

All das in einem Verzweigungsmodell wie das hier beschriebene.

Lösung

Wenn Ihnen die Methode in dem von Ihnen geposteten Link gefällt, schauen Sie sich Git Flow an.

Es handelt sich um eine Reihe von Skripten, die er für diesen Arbeitsablauf erstellt hat.

Aber um Ihre Frage zu beantworten:

$ git checkout -b myFeature dev

Erstellt den MyFeature-Zweig von dev. Mach deine Arbeit und dann

$ git commit -am "Your message"

Nun führe deine Änderungen in dev ein, ohne einen Schnellvorlauf

$ git checkout dev
$ git merge --no-ff myFeature

Pushen Sie nun die Änderungen auf den Server

$ git push origin dev
$ git push origin myFeature

Und Sie werden es so sehen, wie Sie es wollen.

Kommentare (13)

Wenn Sie einen neuen Zweig aus einem der vorhandenen Zweige in Git erstellen möchten, folgen Sie einfach den Optionen.

Wechseln Sie zunächst in den Zweig, von dem aus Sie einen neuen Zweig erstellen möchten. Wenn Sie zum Beispiel die folgenden Zweige haben wie:

  • master
  • dev
  • Zweig1

Wenn Sie also eine neue Verzweigung mit dem Namen "subbranch_of_b1" unter der Verzweigung mit dem Namen "branch1" erstellen möchten, gehen Sie wie folgt vor:

  1. Checken Sie aus oder wechseln Sie in "branch1".

     git checkout branch1
  2. Erstelle nun deinen neuen Zweig namens "subbranch_of_b1" unter "branch1" mit dem folgenden Befehl.

     git checkout -b subbranch_of_b1 branch1

    Der obige Befehl erstellt einen neuen Zweig mit dem Namen Unterzweig_von_b1 unter dem Zweig Zweig1 (beachten Sie, dass Zweig1 im obigen Befehl nicht zwingend erforderlich ist, da der HEAD derzeit auf diesen Zweig verweist, Sie können ihn jedoch präzisieren, wenn Sie sich in einem anderen Zweig befinden).

  3. Nachdem Sie mit dem Unterzweig_von_b1 gearbeitet haben, können Sie ihn lokal oder aus der Ferne committen und pushen oder zusammenführen.

Ein Beispiel für die grafische Darstellung des Erstellens von Zweigen unter einem anderen Zweig]1

Push der Unterverzweigung_von_b1 auf remote

 git push origin subbranch_of_b1 
Kommentare (7)

Arbeiten Sie gleichzeitig am "Entwicklungszweig". In Ihrem Szenario bewegt sich der Funktionszweig von der Spitze des Entwicklungszweigs aus vorwärts, aber der Entwicklungszweig ändert sich nicht. Es ist einfacher, es als eine gerade Linie zu zeichnen, weil man es sich als Vorwärtsbewegung vorstellen kann. Sie haben es bis zu Punkt A auf der Entwicklungsseite geschafft und sind von dort aus einfach auf einem parallelen Pfad weitergegangen. Die beiden Zweige haben sich nicht wirklich auseinanderentwickelt.

Wenn Sie nun einen Commit auf dev machen, bevor Sie zusammenführen, beginnen Sie wieder bei demselben Commit, A, aber jetzt gehen die Features zu C und dev zu B. Dies zeigt die Trennung, die Sie zu visualisieren versuchen, da die Zweige nun auseinander gegangen sind.

*-----*Dev-------*Feature

Versus

       /----*DevB
*-----*DevA
       \----*FeatureC
Kommentare (0)