Wie synchronisiert man zwei Zweige im selben Git Repository?
Hier ist ein gemeinsames workflow-Hürde treffe ich oft:
master ist unser "stable-Zweig"
$ git status
# On branch master
nothing to commit (working directory clean)
erstellen Sie ein Modul auf einem Zweig
$ git checkout -b foo
$ echo "hello" > world
$ git add .
$ git commit -m "init commit for foo module"
$ git checkout master
$ git merge foo
arbeiten, die auf master-oder andere Zweige
In den nächsten paar Wochen, mehr code wird verpflichtet, den master direkt und durch andere Zweige. foo
Zweig wird gehen unberührt für diesen Zeitraum
wieder arbeiten/updates auf foo Zweig
$ git checkout foo
Oh Nein! foo
ist Massiv veraltet! Ich verstehe warum, aber ich tun müssen foo
wieder zu synchronisieren.
die Frage
Wie bekomme ich die aktuellen Inhalte aus der master
Zweig?
InformationsquelleAutor der Frage maček | 2010-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht brauchen, der Zweig um:
Wenn Sie zusammengeführt haben, foo zurück zum Meister, "git branch -d foo" zu töten, das Thema Niederlassung, und dann "checkout -b foo" in der Zukunft, wenn Sie brauchen, um hack wieder drauf.
Wenn Sie wollen, brauchen Sie den Zweig herum:
Können Sie rebase Ihr Thema-branch gegen den master-branch:
Oder:
InformationsquelleAutor der Antwort Adam Vandenberg
Rebasierung ist in den Prozess der verschieben oder kombinieren eine Folge von commits, die auf eine neue Basis zu Begehen. Rebase ist sehr nützlich und einfach zu visualisieren, die im Kontext einer Funktion Verzweigung workflow. Das Allgemeine Verfahren kann visualisiert werden wie das folgende:
Beispiel unten kombiniert git mit git rebase merge pflegen eine lineare Projekt Geschichte. Dies ist eine schnelle und einfache Möglichkeit, um sicherzustellen, dass Ihr verschmilzt, wird schnell weitergeleitet.
In der Mitte unserer Funktion, die wir erkennen, dass es eine Sicherheitslücke in unserem Projekt
Nach der Zusammenführung der hotfix in den master, wir haben eine abgespaltete Projekt Geschichte. Statt einem einfachen git-merge, werden wir die Integration der feature-branch mit einem Stellungswechsel zu pflegen eine lineare Geschichte:
Diese Bewegungen neue Funktion an der Spitze von master -, die uns eine standard-fast-forward-merge vom master:
Entnommen Atlassian Git Rebase-Tutorial
InformationsquelleAutor der Antwort Mauricio Gracia Gutierrez