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?
Antworten:
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.
quelle
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
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
quelle
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 ...
quelle