Ich habe meine master
Niederlassung und eine develop
Niederlassung, um an einigen Änderungen zu arbeiten. Ich muss Änderungen von master
in zusammenführen develop
, werde aber irgendwann alles von develop
in zusammenführen master
. Ich habe zwei verschiedene Workflows im Sinn:
git pull origin master
indevelop
Zweiggit merge master
indevelop
Zweig
Welches ist der beste Weg, und warum?
git pull
=git fetch
+git merge FETCH_HEAD
Antworten:
Seien Sie vorsichtig mit Rebase. Wenn Sie Ihren Entwicklungszweig mit anderen teilen, kann Rebase die Dinge durcheinander bringen. Rebase ist nur für Ihre eigenen lokalen Niederlassungen geeignet.
Faustregel: Wenn Sie den Zweig zum Ursprung verschoben haben, verwenden Sie keine Rebase. Verwenden Sie stattdessen Merge.
quelle
git push origin rebasedBranch --force
auf ein privates Repo zu stützen ? Der einzige Benutzer ist ich.Dieser Workflow funktioniert am besten für mich:
... einige Änderungen vornehmen ...
... Hinweis Master wurde aktualisiert ...
... Änderungen vornehmen, um sich zu entwickeln ...
... diese Veränderungen wieder in die Entwicklung bringen ...
... noch einige Änderungen vornehmen ...
... verpflichten sie sich zu entwickeln ...
... füge sie zum Meister zusammen ...
quelle
git pull
kurz vor dem Finalegit merge develop
. Was ist der Zweck davon?git pull --rebase origin master
auf Ihrem Entwicklungszweig ist ein bisschen schneller.Der beste Ansatz für diese Art von Dingen ist wahrscheinlich
git rebase
. Es ermöglicht Ihnen, Änderungen vom Master in Ihren Entwicklungszweig zu übernehmen, aber Ihre gesamte Entwicklungsarbeit "über" (später im Festschreibungsprotokoll) dem Material vom Master zu belassen. Wenn Ihre neue Arbeit abgeschlossen ist, ist die Zusammenführung zum Master sehr einfach.quelle
develop
wird mit niemandem geteilt.develop
es mit anderen Mitwirkenden geteilt wird, wie würden wir es aktualisieren,develop
wenn einige Hotfixes direkt an gesendet würdenmaster
? Sollten wir eine Fusion machen, dhgit checkout master && git pull --rebase && git checkout develop && git merge master
? Ich habe oben einen Kommentar zu der Antwort mit der höchsten Stimme hinterlassen, in dem auch dieses Problem aufgeführt ist.Wenn Sie den Entwicklungszweig mit niemandem teilen, würde ich ihn jedes Mal neu erstellen, wenn der Master aktualisiert wird. Auf diese Weise haben Sie keine Merge-Commits in Ihrem gesamten Verlauf, sobald Sie die Entwicklung wieder zum Master zusammenführen. Der Workflow wäre in diesem Fall wie folgt:
Mit den obigen Schritten wird sichergestellt, dass Ihr Entwicklungszweig immer über die neuesten Änderungen des Hauptzweigs informiert ist. Sobald Sie mit der Entwicklung des Zweigs fertig sind und die neuesten Änderungen am Master vorgenommen wurden, können Sie ihn einfach wieder zusammenführen:
quelle
Meine Faustregel lautet:
Beispiele für denselben Namen wären
master
,origin/master
undotherRemote/master
.Wenn
develop
es nur im lokalen Repository vorhanden ist und es immer auf einem kürzlich durchgeführtenorigin/master
Commit basiert , sollten Sie es aufrufenmaster
und dort direkt arbeiten. Es vereinfacht Ihr Leben und präsentiert die Dinge so, wie sie tatsächlich sind: Sie entwickeln sich direkt in dermaster
Branche.Wenn
develop
es geteilt wird, sollte es nicht neu basiertmaster
, sondern nur wieder mit zusammengeführt werden--no-ff
. Sie entwickeln sich weiterdevelop
.master
unddevelop
haben unterschiedliche Namen, weil wir wollen, dass sie unterschiedliche Dinge sind und getrennt bleiben. mach sie nicht gleich mitrebase
.quelle