Ich habe ein gut etabliertes Software-Toolkit, das aber oft kleine Verbesserungen benötigt (hauptsächlich um Kompatibilitätsprobleme mit Produkten von Drittanbietern zu bewältigen). Ich möchte nun eine "neue" Version (verbesserte API) erstellen, die auf dem Original basieren wird - das wird sich im Laufe der Zeit von der bestehenden Zweigstelle unterscheiden, aber für ein paar Jahre werde ich das Original "live" behalten müssen bestehende Kunden, die es für die Kompatibilität benötigen. Natürlich muss ich auch sicherstellen, dass die "Tweaks" auch auf die "neue" Version angewendet werden, da solche Probleme (in am meisten cases!) gelten auch für die "neue" Version.
Also - mein idealer (einfacher) Workflow wäre:
Mir ist klar, dass gelegentliche manuelle Eingriffe erforderlich sein werden, bei denen Zusammenschlüsse widersprüchlich sind, aber ich würde erwarten, dass dies selten ist, basierend auf der Erfahrung manueller Änderungen in der Vergangenheit.
Im Moment versuche ich, VSS aufzugeben (ja - lache mich weiter aus, weil du so lange wach gehalten hast!), und ich hatte gehofft, Git würde das leicht machen, aber bisher scheint es nicht so irgendwelche "einfachen" Lösungen, mit den Vorschlägen, die ich gesehen habe, dass alles um "Rebase" herum aufgebaut ist, was mir "falsch" erscheint, da Rebase viele andere Dinge zu tun scheint, wie das Umschreiben von Geschichte, wenn alles, was ich brauche, ein einfaches wäre , echte "vorwärts gehen" basierend auf den Änderungen von der anderen Branche.
Alle Gedanken sehr geschätzt!
Sie könnten einfach die Änderungen von Ihrem alten Zweig mit der neuen Version zusammenführen.
Lassen Sie mich näher auf die Ablehnung eingehen: Wenn Sie nicht der einzige Entwickler sind, der an der Codebasis arbeitet, würde ich Ihnen nicht empfehlen, Rebase für dieses spezielle Problem zu verwenden. Beachten Sie, dass die Verwendung von Rebase nur für private Zweige seit dem Neuschreiben des Verlaufs empfohlen wird und somit alle Commits ungültig werden, für die ein erneutes Commit als Vorgänger vorliegt.
Wenn Sie die alten Versionszweigänderungen auf Ihre neue Version umbuchen, werden Sie den Verlauf des neuen Versionszweigs jedes Mal neu schreiben, wenn Sie Änderungen von der alten in die neue Version bringen müssen. Dies bedeutet, dass jede Arbeit, die mit einer Basis in der neuen Version ausgeführt wurde, dh ein Feature-Zweig für ein Feature, das exklusiv für die neue Version ist, verloren geht, da das ursprüngliche Commit nicht mehr existiert.
Sehen Sie sich Git flow an - ein Ansatz für die Verzweigung für diese Art von Features mit Werkzeugen, um es zu unterstützen. Im Grunde genommen tust du es für jeden neuen Tweak auf einem neuen Zweig, der vor dem gemeinsamen Vorfahren der Zweige, die du pflegst, verwurzelt ist, und dann verschmelzt du diesen mit jedem von ihnen.
Tags und Links git git-branch