Ich hatte kürzlich eine Diskussion mit Leuten, die absolut gegen eine Rebase-Strategie von Feature-Branches auf GIT waren. Es scheint ein akzeptiertes Muster zu sein, Rebase nur für lokale, private Zweige zu verwenden, aber verwenden Sie es niemals, wenn mehrere Personen an derselben Funktion und demselben Zweig arbeiten, wie in dieser so genannten "Goldenen Regel des Rebasings" (wie hier erklärt: https : //www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview )
Ich bin nur überrascht, dass diesbezüglich ein Konsens besteht. Ich habe 3 Jahre mit einer vollständigen Umbasierungsstrategie gearbeitet, wobei ungefähr 20 Entwickler zusammengearbeitet haben und raten Sie mal, was funktioniert hat.
Der Prozess ist im Grunde:
- Sie erstellen Ihren Feature-Zweig, nennen ihn "myfeature" und verschieben ihn auf origin / myfeature
- Andere Leute können es ausprobieren und daran arbeiten
- Manchmal kann es vorkommen, dass Sie es vom Master zurücksetzen: von "myfeature", git rebase origin / master ; und dann, ja, müssen Sie es drücken.
- Was passiert, wenn andere Leute ihr Commit forcieren wollen? Sie lehnen es einfach ab: git rebase origin / myfeature . So sind sie jetzt im Schnellvorlauf und können ihn ohne Kraftaufwand schieben.
Das einzige Prinzip, das beachtet werden muss, ist, dass der Feature-Zweig jemandem gehört . Der Eigentümer ist der einzige, der Push-Force kann.
Also, ich gebe zu: Sobald Druck ausgeübt wird, besteht die Gefahr, dass Fehler gemacht werden. Das ist richtig. Aber es gibt auch viele Möglichkeiten, Fehler zu beheben, und in den letzten drei Jahren meiner Entwicklung habe ich nicht viele Fehler gesehen, die mich dazu veranlasst haben, und als es dazu kam, haben wir immer einen Weg gefunden, wie wir uns richtig erholen können.
Warum wird diese "Goldene Regel der Wiedergutmachung" so allgemein akzeptiert? Gibt es noch etwas, das ich vermisst habe? Ich verstehe, es erfordert ein Minimum an Organisation (jede Strategie erfordert eine Organisation), aber es funktioniert.