2016-06-30 12 views
1

Stellen Sie sich das Szenario:Ändern ausgecheckt Zweig

Sie sind in develop Zweig derzeit. Sie haben einen neuen Zweig erstellt. Sagen wir A Sie haben einige Commits gemacht.

Aber dann haben Sie festgestellt, dass dies ein Hotfix ist und es sollte auf master Zweig basieren. Und develop hat einige Änderungen, die nicht in der master Zweig noch sein sollte. (gitflow)

Also, was ist der einfachste Weg, alle Änderungen an einem neuen Zweig basierend auf master zu tragen?

Das ist mir heute passiert. Und meine (dumme) Lösung war:

  • löschen A
  • alle Änderungen Prägen Sie gemacht haben.
  • Checkout zu master.
  • Neuen Zweig erstellen. B
  • Wenden Sie Ihre Änderungen auf diesen neuen Zweig an.

Es muss besser sein! :)

+0

Mögliches Duplikat von [In git, wie entferne ich ein Commit von einem Zweig und wende es auf einen anderen Zweig an?] (Http://stackoverflow.com/questions/1773731/in-git-how-do-i -remove-a-commit-from-one-branch-and-apply-it-to-a-different-bra) –

Antwort

1

Also, was ist der einfachste Weg, um alle Änderungen an einem neuen Zweig basierend auf Master zu tragen?

Das ist, was rebase tut:

git rebase --onto master development A 

Jetzt Ihre Branche basiert auf Master.

Siehe the docs for git-rebase, speziell die --onto-Sektion.

+0

Aber wenn 'develop' vor' master' steht, wird das auch diese commits übernehmen? –

+2

Nein, ich habe einen Link zu den Dokumenten hinzugefügt, Ihr genaues Beispiel ist dort, wenn Sie --onto besprechen. – RemcoGerlich

Verwandte Themen