Wiederverwenden eines zusammengeführten Zweigs, bewährte Methode?


36

Derzeit habe ich jedes Mal, wenn ich meiner Anwendung eine neue Funktion hinzufügen muss, eine neue Verzweigung erstellt.

Wenn mein Feature fertig und funktionsfähig ist, füge ich es mit dem Master-Zweig zusammen.

Aber wenn ich später diese Funktion aktualisieren muss (wie eine Verbesserung), ist es besser, einen neuen Zweig zu erstellen, oder muss ich den vorherigen Zweig mit dem Master neu zusammenführen, wird das Update dann erneut zusammengeführt?

Zum Beispiel habe ich einen Zweig namens modeling-member in einer Ruby on Rails-Anwendung. Später muss ich dem Mitgliedermodell (das in diesem Zweig erstellt wurde) einige Attribute hinzufügen. Was sollte ich tun? Diesen Zweig mit dem Master neu starten, das Modell aktualisieren und erneut zusammenführen oder einfach einen neuen Zweig erstellen?


1
Wenn Ihr Projekt sehr groß wird, ist die Wiederverwendung alter Zweige sehr zeitaufwendig, damit Git wechselt und / oder aktualisiert. Im Vergleich zu den wenigen Sekunden, die zum Erstellen eines neuen Zweigs benötigt werden.
Reactgular

Antworten:


34

Erstellen Sie einen neuen Zweig, weil:

  • Es ist weniger wahrscheinlich, dass bei einem brandneuen Zweig Zusammenführungskonflikte auftreten, wenn Sie fertig sind und ihn in master zusammenführen möchten. Nur wenige Dinge sind fehleranfälliger als das Beheben von Zusammenführungskonflikten.

  • Die Funktion hat seit ihrer ursprünglichen Implementierung möglicherweise mehrere Änderungen und Aktualisierungen durchlaufen, sodass die ursprüngliche Verzweigung völlig veraltet ist. Die einzige Möglichkeit, um es auf den neuesten Stand zu bringen, besteht darin, master in den Feature-Zweig einzufügen ... und an diesem Punkt verzweigen Sie master auf unnötig komplizierte Weise.

  • Aus Gründen der Einfachheit ist es in der Regel eine gute Idee, für Updates, Fehlerkorrekturen und neue Funktionen denselben Workflow zu verwenden. Das gilt für Verzweigungen, Codeüberprüfungen, die Verwendung von Fehlerverfolgern und so ziemlich alles andere. Der Unterschied zwischen dem Aktualisieren eines vorhandenen Features, dem Hinzufügen eines neuen Features und dem Beheben eines Fehlers ist oft ohnehin subjektiv.


7

Verwenden Sie einen neuen Zweig.

Für die Benennung können Sie in Betracht ziehen, ein internes Format zu verwenden, bei dem this_work eine Erweiterung ist oder in that_work geändert wird

Zum Beispiel könnten Sie den zweiten Zweig benennen

modeling-member--attributes

mit der - Anzeige, dass der Name links der ursprüngliche Zweig ist

Wir lösen ein ähnliches Problem, indem wir Jira-Ticketnummern für Filialnamen verwenden. Manchmal gibt es ein bisschen zusätzliche Arbeit für das gleiche Ticket. Manchmal konnte eine Datenbankänderung nicht rückgängig gemacht werden. In diesen Fällen verwenden wir zum Beispiel die ursprüngliche Verzweigung SEND-123 und die zweite Verzweigung SEND-123a


0

Wenn Sie nur Commits aus einer Zusammenführung auf dem Master speichern möchten und Github verwenden, können Sie "Fork" für jedes neue Feature verwenden und eine Pull-Anforderung ausführen und eine Pull-Anforderung akzeptieren, nachdem Sie alle neuen Features abgeschlossen haben.

Ich empfehle nicht, an alten Zweigen zu arbeiten, da es zu Konflikten kommen kann, wenn Sie sie mit dem Kopf des Masters zusammenführen, und dies natürlich nicht erforderlich ist ...


4
"u" ist kein englisches Wort. Solches Sprechen von Texten sollte für Texte und Twitter reserviert sein.
Gort the Robot

@Steven Nun, auch dort, wo für (die meisten Leute) nicht mehr drei oder vier Tastendrücke erforderlich sind, sollte dies vermieden werden. :)
TZHX
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.