Frage

Ich habe zwei Zweige: Master und dev

Ich möchte ein "Feature Zweig" zu schaffen, aus dem dev Zweig.

Derzeit auf dem Zweig dev, das tue ich:

$ git checkout -b myfeature dev

... (einige Arbeit)

$ git commit -am "blablabla"
$ git push origin myfeature

Aber nach meinem Zweig sichtbar zu machen, ich habe:

--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**

Ich meine, dass der Zweig scheint ff verschmolzen, und ich verstehe nicht, warum ...

Was ich falsch?

Können Sie erklären Sie mir bitte, wie Sie aus einem anderen Zweig und Push zurück zum Remote-Repository für die Funktionszweig abzweigen?

Alles in einem Verzweigungsmodell wie die eine hier beschriebene .

War es hilfreich?

Lösung

Wenn Sie wie die Methode in dem Link, den Sie geschrieben haben, haben einen Blick auf Git Fluss .

Es ist eine Reihe von Skripten er für diesen Workflow erstellt.

Aber um Ihre Frage zu beantworten:

$ git checkout -b myFeature dev

Erzeugt MyFeature abzweigen dev. Haben Sie Ihre Arbeit und dann

$ git commit -am "Your message"

Jetzt fusionieren Ihre Änderungen an Entwickler ohne Vorspulen

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

Drücken Sie nun Änderungen an den Server

$ git push origin dev
$ git push origin myFeature

Und du wirst es sehen, wie Sie es wollen.

Andere Tipps

Wenn Sie einen neuen Zweig aus einem der bestehenden Niederlassungen in Git erstellen möchten, nur die Optionen folgen.

Erste Änderung / Kasse in den Zweig von dem Sie einen neuen Zweig erstellen möchten. Zum Beispiel, wenn Sie die folgenden Branchen wie:

  • Master
  • dev
  • branch1

Wenn Sie also einen neuen Zweig erstellen möchten namens "subbranch_of_b1" unter dem Zweig namens "branch1" folgen Sie den Schritten:

  1. Zur Kasse oder Änderung in "branch1"

    git checkout branch1
    
  2. Jetzt erstellen Sie Ihre neue Niederlassung namens "subbranch_of_b1" unter dem "branch1" mit dem folgenden Befehl aus.

    git checkout -b subbranch_of_b1 branch1
    

    Das oben wird eine Niederlassung schaffen namens subbranch_of_b1 unter dem Zweig branch1 (beachten Sie, dass branch1 in dem obigen Befehl nicht zwingend notwendig ist, da der Kopf gerade er zeigt , können Sie es genau, wenn Sie sind auf einem anderen Zweig obwohl).

  3. Jetzt, nach der Arbeit mit der subbranch_of_b1 können Sie begehen und Push oder fusionieren sie lokal oder aus der Ferne.

drücken Sie die subbranch_of_b1 auf Remote

 git push origin subbranch_of_b1 

Erstellen Sie eine Niederlassung

  • Erstellen Zweig, wenn Master-Zweig ausgecheckt ist. Hier Commits im Master wird mit dem Zweig synchronisiert werden Sie erstellt.

    $ git branch branch1

  • Erstellen Zweig, wenn branch1 ausgecheckt ist. Hier Commits in branch1 wird branch2 synchronisiert werden

    $ git branch branch2


Kasse ein Zweig

git checkout Befehlsschalter Zweige oder wiederherstellen Baumdateien arbeiten

  • $ git checkout branchname

Umbenennen einer Niederlassung

  • $ git branch -m branch1 newbranchname

Löschen einer Niederlassung

  • $ git branch -d branch-to-delete
  • $ git branch -D branch-to-delete ( Kraft Löschen ohne das fusionierte Statusprüfung )

Erstellen und Schalter Zweig

  • $ git checkout -b branchname

Branchen, die vollständig enthalten

sind
  • $ git branch --merged


************************** Zweig Unterschiede [git diff branch1..branch2] **** ********************

mehrzeilige Differenz
  • $ git diff master..branch1
Einlinige Differenz
  • $ git diff --color-words branch1..branch2

Do gleichzeitige Arbeit an dem dev Zweig. Was passiert, ist, dass die Funktionszweig bewegt sich vorwärts von der Spitze des Entwickler-Niederlassung in Ihrem Szenario, aber die Entwickler Zweig nicht ändert. Es ist einfacher, als eine gerade Linie zu ziehen, weil sie als Vorwärtsbewegung gedacht werden kann. Sie haben es A auf dev-zu-Punkt, und von dort kann man einfach auf einem parallelen Weg fortgesetzt. Die beiden Zweige haben nicht wirklich auseinander.

Nun, wenn Sie ein auf dev machen verpflichten, vor der Verschmelzung, werden Sie wieder an den gleichen beginnen begehen, A, aber jetzt gehen verfügt auf C und Entwickler auf B. Es wird die Split Sie zu visualisieren versuchen zu, wie die Zweige haben jetzt abwich.

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

Versus

       /----*DevB
*-----*DevA
       \----*FeatureC

Git 2,23 einleitet git switch und git restore die Verantwortung der git checkout

Erstellen eine neue Niederlassung aus einem bestehenden Zweig ab git 2,23:

git switch -c my-new-branch

Switched zu einem neuen Zweig 'my-new-Zweig'

  • -c ist die Abkürzung für - erstellen und ersetzt die bekannte git checkout -b

Schauen Sie sich auf this Github Blog-Post die Änderungen näher erläutern:

Git 2.23 bringt ein neues Paar experimenteller Befehle in der Suite der bestehenden diejenigen: git Schalter und git wiederherstellen . Diese beiden sollen schließlich eine bessere Schnittstelle für die bekannte git Kasse. Das neue Befehle wollen jeweils eine klare Trennung haben, ordentlich divvying up was die vielen Aufgaben von git checkout

Wenn Sie von einigen eine Filiale machen wollen ein weiterer Zweig dann unten Schritten folgen:

Annahmen :

  1. Sie befinden sich in Master-Zweig.
  2. Sie haben keine Änderungen zu übernehmen. (Wenn Sie Änderungen haben zu begehen, verstauen Sie es!).
  3. BranchExisting der Name des Zweiges von denen müssen Sie einen neuen Zweig mit dem Namen BranchMyNew machen.

Schritte :

  1. Holt den Zweig auf dem lokalen Computer.

    $ git fetch origin BranchExisting : BranchExisting
    

Mit diesem Befehl wird eine neue Niederlassung in Ihrem lokalen mit demselben Zweig Namen erstellen.

  1. Nun, von Master-Zweig der Kasse an den neu geholten Zweig

    $ git checkout BranchExisting
    
  2. Sie sind jetzt in BranchExisting. Jetzt erstellen Sie einen neuen Zweig aus diesem bestehenden Zweig.

    $ git checkout -b BranchMyNew
    

Hier gehen Sie!

von einem anderen einen Zweig der Erstellung dieser Syntax auch verwenden können:

git push origin refs/heads/<sourceBranch>:refs/heads/<targetBranch>

Es ist ein wenig kürzer als "git checkout -b" + "git push origin"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top