Verwenden Sie diesen oder einen ähnlichen Git-Verzweigungs-Workflow?
Wir verwenden einen ähnlichen Workflow bei der Arbeit, der jedoch etwas weniger kompliziert ist. Es ist jedoch stark von diesem Workflow inspiriert, da ich diesen Artikel oft gelesen habe. Ich habe sogar das PDF des Verzweigungsmodells in Farben neben meinem Schreibtisch gedruckt :)
Halten Sie dies für einen produktiven Ansatz?
Produktiv. Wie definieren Sie Produktivität? Meiner Meinung nach ist es am wichtigsten, eine hohe Qualität zu haben, zumindest um immer eine bessere Qualität zu erreichen. Ständige Verbesserung des Prozesses usw. Wenn Sie Qualitätscode erstellen können, wird die Produktivität davon profitieren. Die Frage ist also wirklich: Verbessert dies die Qualität der Software? Und meine Antwort darauf lautet definitiv ja.
Was ich an dieser Art von Verzweigungsmodell am meisten liebe, ist, dass es Verzweigungen in verschiedenen Qualitätsschichten einführt. Je weiter rechts im Bild, desto höher die Stabilität und desto höher die Qualität. Der Master-Zweig ist heilig und alle Commits sollten als stabile Versionen der Software angesehen werden. Je weiter Sie nach links gehen, desto experimenteller und desto geringer ist die Stabilität.
Sobald Sie neue Funktionen und Fehlerbehebungen testen, können Sie diese schrittweise von links nach rechts übertragen und so Code mit hoher Qualität einfügen, genau dann, wenn Sie wissen, dass der Code die Qualitätsanforderungen erfüllt, die Sie an den Code stellen. Zumindest theoretisch, da Sie nicht alles zu 100% testen können und sicher wissen, dass der Code keine Fehler enthält, da er immer Fehler enthält. Aber es ermöglicht Ihnen, ein hohes Vertrauen zu behalten.
Nichts ist für einen Programmierer schlimmer, als in einem System zu arbeiten, in dem niemand Vertrauen in den Code hat, weil er weiß, dass er nur scheiße ist und dass es eine Menge Fehler darin gibt.
Sehen Sie Fehler bei diesem Ansatz? Irgendwelche möglichen Nachteile?
Es ist wichtig, dass Sie Ihr Verzweigungsmodell durchdenken, damit es gut zu den Anforderungen Ihres Unternehmens passt. Nur weil dieses Modell für manche Menschen gut funktioniert, heißt das nicht unbedingt, dass es für andere optimal oder wünschenswert ist.
Es gibt immer Kompromisse und auch in diesem Fall. Ein Kompromiss ist die Anzahl der Filialen gegenüber der Komplexität. Durch die Einführung vieler verschiedener Zweigstellentypen erhöhen Sie die Komplexität des Workflows. Zum Beispiel kann es einfach falsch sein, Leute immer zu zwingen, einen neuen Feature-Zweig zu erstellen, wenn sie versuchen, einen einfachen Fehler durch Ändern einiger Codezeilen zu beheben.
Wir alle wissen, dass Fehler mehr oder weniger kompliziert zu lösen sind. Wenn also ein trivialer Fehler entdeckt wird, möchten Sie möglicherweise die Komplexität und Verwaltung reduzieren, um zusätzlichen Aufwand zu vermeiden und die Leute direkt an den Master oder den Entwicklungszweig zu binden. Da die Art Ihrer Korrekturen jedoch komplizierter wird, lohnt sich der zusätzliche Aufwand, um neue Zweige für sie zu erstellen. Vor allem, wenn Sie sich über Größe und Länge nicht sicher sind oder wenn Sie die Zusammenarbeit zwischen Ihnen und den anderen Entwicklern verbessern möchten.
Wenn Sie einen besseren Ansatz haben, würde es Ihnen etwas ausmachen, ihn zu teilen oder einen Link zu einem Artikel oder einer Diskussion darüber bereitzustellen?
Dies ist zweifellos ein guter Ansatz und passt möglicherweise in die meisten Fälle, da die meisten von uns ähnliche Entwicklungsprozesse haben, aber möglicherweise nicht für jeden geeignet. Ich fordere Sie dringend auf, darüber nachzudenken, wie Sie jetzt mit Ihrem Code umgehen, und zu versuchen, ein Verzweigungsmodell zu erstellen, das zu dem passt, das Sie bereits haben.
Der wichtigste Punkt ist, mit Git zu beginnen und der Rest wird natürlich folgen. Fangen Sie einfach an und verbessern Sie sich allmählich! Seien Sie kreativ!
Prost