Git Flow Zweige sind auseinander gegangen

71

Ich benutze die Git Flow Tools und bin in ein Problem geraten. Meine Git-Zweige sind auseinander gegangen. Ich habe gelesen, dass Master Branch und 'Origin / Master' auseinander gegangen sind. Wie kann man 'Zweige' auflösen? und haben versucht, die Schritte zu befolgen, wobei sowohl versucht wurde, mein lokales Repository zusammenzuführen als auch neu zu starten.

    $  git flow feature finish showFindLogs
    Branches 'develop' and 'origin/develop' have diverged.
    And branch 'develop' may be fast-forwarded.
    $  git merge origin/develop
    Already up-to-date.
    $ git rebase origin/develop
    Current branch feature/showFindLogs is up to date.
    $ git status
    # On branch feature/showFindLogs
    nothing to commit (working directory clean)

Wie kann ich da rauskommen? Ich bin mit der Git Flow-Funktion fertig und möchte meine Änderungen nur auf die Fernbedienung übertragen. Vielen Dank!

Paul Cezanne
quelle

Antworten:

143

Was hier passiert, ist, dass die Fernbedienung Aktualisierungen erhalten hat, und Git-Flow erfordert dies developund muss origin/developsich beim gleichen Commit befinden, bevor die Funktion wieder zusammengeführt wird. Dies dient dazu, fehlerhafte Konflikte beim Veröffentlichen des Zweigs zu vermeiden.

Um dies zu lösen, müssen Sie:

  1. Synchronisieren Sie Ihren lokalen developmit origin: checkout developund ziehen Sie von originto develop( git checkout develop && git pull origin)

  2. Starten Sie Ihre Funktion developmit git flow feature rebase showFindLogs. Sie können hier Konflikte haben, wenn Sie Pech haben

  3. Überprüfen Sie, ob nichts kaputt geht

  4. git flow feature finish showFindLogs

CharlesB
quelle
2
Wird keine git checkout develop && git pull originCommit-Nachricht "Ursprung zusammenführen / zu Entwickeln entwickeln" erstellt? Wäre git checkout develop && git rebase origin(aka git pull --rebase origin) in dieser Situation nicht besser?
PeterB
1
@ PeterB: Ja, wenn developund origin/developauseinander gegangen sind, aber es ist keine häufige Situation
CharlesB
Git Pull Origin war das, was es für mich behoben hat. Ich habe meinen Zweig zusammengeführt, anstatt ihn neu zu gründen.
Steven Rogers
Was tun, wenn meine Entwicklung bereits auf dem neuesten Stand ist, ich aber immer noch den divergierenden Status für das Feature / den neuen Zweig habe, wenn ich versuche, ihn neu zu starten? zuvor habe ich Feature / alten Zweig in Entwicklung zusammengeführt, aber alte und neue Zweige haben keine Konflikte ...
norlin
@norlin Hast du deinen Feature-Zweig neu aufgebaut develop?
CharlesB
7

Stellen Sie sicher, dass Ihr developZweig nicht hinter dem Ursprung liegt. Möglicherweise müssen Sie eine Leistung erbringen

git checkout develop

git pull

git checkout release/x.x.x

Und setzen Sie den Release-Prozess fort

Bruno Peres
quelle
0

Mit diesem Befehl können Sie von $ ORIGIN abrufen, bevor Sie die Funktion beenden:

git flow feature finish -F <name>

( docs )

Manolo
quelle
0

Für alle, die diesen Fehler googeln und Hub-Flow verwenden, tun Sie einfach:

git hf update
Shoham
quelle
-1

Um dieses Problem zu lösen, können Sie meine Implementierung von git flow verwenden, die auf der @ childno͡.de-Lösung basiert.

git flow feature/hotfix/release/bugfix  -e finish <name>

So installieren Sie Git Flow in der Konsole:

git clone https://github.com/wyhasany/gitflow-avh/;cd gitflow-avh/;git checkout feature/force_merge;git pull;sudo make install
Michał Rowicki
quelle