Ich habe ein folgendes Szenario:
3 Zweige:
- Meisterin
- MyBranch hat den Master abgezweigt, um ein neues Feature des Systems zu entwickeln
- MyBranchLocal verzweigt von MyBranch als meine lokale Kopie der Zweigstelle
MyBranch wird gegen andere Entwickler requalifiziert und von ihnen gedrängt (die an derselben Funktion arbeiten wie ich).
Als Besitzer der MyBranch-Zweigstelle möchte ich sie durch Rebasieren mit dem Master synchronisieren. Ich muss auch die Änderungen, die ich an MyBranchLocal mit MyBranch mache, zusammenführen.
Was ist ein guter Weg, das zu tun?
Ein paar mögliche Szenarien, die ich bisher versucht habe:
Ich.
1. Übernehmen Sie die Änderung in MyBranchLocal
2. Rebase MyBranch gegen Master
3. Rebase MyBranchLocal gegen MyBranch
4. Merge MyBranch mit MyBranchLocal
II.
1. Übernehmen Sie die Änderung in MyBranchLocal
2. Merge MyBranch mit MyBranchLocal
3. Rebase MyBranch gegen Master
4. Rebase MyBranchLocal gegen MyBranch
III.
1. Übernehmen Sie die Änderung in MyBranchLocal
2. Rebase MyBranch gegen Master
3. Merge MyBranch mit MyBranchLocal
4. Rebase MyBranchLocal gegen MyBranch
Ich weiß bereits, dass Szenario III die Commit-Geschichte sehr durcheinander bringt und möglicherweise Commits dupliziert.
Was ist Ihre Erfahrung? Welche Szenarien empfehlen Sie, den Zusammenführungsaufwand zu minimieren und die Historie sauber zu halten?
Mein persönlicher Vorschlag. Dieser Bereich konzentriert sich auf einen reinen Commit-Verlauf und auf die "spezifischeren" Zweige (Sie sollten Ihren lokalen Zweig besser durcheinander bringen als den Feature-Zweig).
Ich habe diese Frage nach dem Link zu Linus E-Mail gefunden. Laut E-Mail - solltest du dich nicht neu anmelden, nachdem du deinen Verlauf auf einer öffentlichen Seite veröffentlicht hast, weil du die Geschichte anderer Personen zerstören kannst. Also, Rebase für MyBranchLocal ist OK, aber für MyBranch (freigegeben mit anderen Entwicklern) ist nicht.
Tags und Links git git-branch branch dvcs