
Andrew Hanna

Andrew Hanna

Kurz gesagt: Wählen Sie Ihr Branching-Modell aus zwei Eingaben, Teamgröße und Sandbox-Topologie, und aus nichts sonst. Unter etwa vier Mitwirkenden mit nur Developer-Sandboxes: ein Main-Branch und kurzlebige Feature-Branches. Zwischen vier und zehn mit einer Partial Copy für UAT: ein Release-Branch je Release, mehr nicht. Darüber, oder mit einer Full Sandbox und festem Change-Fenster, verdient GitFlow seine Zeremonie. Branch pro Umgebung ist eine Compliance-Entscheidung, keine technische.
Drei Dinge, und nur drei: wo laufende Arbeit lebt, wie eine Änderung in die nächste Umgebung befördert wird, und was wahr sein muss, bevor etwas die Produktion erreicht. Alles andere ist Diagrammschmuck.
Salesforce-Teams verrechnen sich hier, weil der allgemeine Engineering-Rat etwas voraussetzt, das auf der Plattform nicht gilt: dass ein Branch Ihnen auch einen Ort zum Ausführen gibt.
Ein langlebiger Branch, main, der immer abbildet, was Produktion sein
sollte. Feature-Branches leben Tage, nicht Wochen, und kommen über einen Pull Request
zurück. Die wenigsten beweglichen Teile, die wenigsten Konflikte, die härteste
Disziplin.
main für ausgelieferten Code, develop für integrierte
Arbeit, dazu Release- und Hotfix-Branches. Gebaut für geplante Releases und für die
Pflege einer laufenden Version, während die nächste entsteht. Kostet einen
zusätzlichen dauerhaften Branch und viel Mergen.
Ein Branch je Org: Dev, UAT, Staging, Produktion. Meist das Erste, was Teams bauen, weil es aussieht wie die Org-Landschaft, die sie ohnehin haben. Die Beförderung wird zum Merge zwischen Umgebungsbranches, was ordentlich klingt und in Merges von Merges plus regelmäßigem Cherry-Picking endet.
Hier hören die meisten Branching-Artikel auf, und hier fällt die eigentliche Entscheidung.
develop, Ihr Sandbox-Bestand rechtfertigt ihn nicht.
Auffällig ist, wie wenig die Release-Kadenz vorkommt. Kadenz ist ein Ergebnis Ihrer Sandbox-Topologie, keine unabhängige Eingabe, und Teams, die nach Wunschkadenz wählen, bekommen einen Prozess, den ihre Umgebungen nicht tragen.
main mit der Produktion ab und behandeln Sie die Differenz
als echtes Backlog, nicht als Kuriosität. Dort stecken meist die Überraschungen.
Das Modell, das den Kontakt mit einem echten Team überlebt, ist das von der Pipeline erzwungene, nicht das im Onboarding-Dokument. Muss sich ein Berater die Branch-Regeln merken, brechen sie in der ersten vollen Release-Woche. Serpent arbeitet ticketbasiert mit Git im Hintergrund, sodass Branch, Pull Request und Beförderungspfad aus dem Ticket kommen statt aus dem Gedächtnis. Weitere Pipeline-Leitfäden finden Sie in unserer SF-Guides-Bibliothek.
Ist Trunk-based für ein Admin-Team realistisch?
Ja, und meist einfacher als GitFlow, weil es nur einen Branch zu verstehen gibt. Entscheidend ist die Disziplin kurzer Branches, nicht Git-Routine.
Brauchen wir einen Git-Branch pro Sandbox?
Nein. Eine Sandbox ist ein Deployment-Ziel. Ein Branch je Org ist die Hauptursache für Merges von Merges und dauerhaftes Cherry-Picking. Zur richtigen Zuordnung siehe Git-Branches Salesforce-Sandboxes zuordnen.
Wie lange darf ein Salesforce-Feature-Branch leben?
Tage. Ein Sprint ist die Obergrenze. Danach kosten Metadaten-Drift und Profilkonflikte mehr, als der Branch einbringt.
Wie funktionieren Hotfixes bei Trunk-based?
Vom letzten ausgelieferten Commit abzweigen, korrigieren, validieren, ausrollen und sofort zurück in main mergen, damit der Fix beim nächsten Release nicht verloren geht.
Ändert sich das Modell für 2GP-Paketteams?
Ja. Nach Paketversion branchen und in Scratch Orgs testen. Umgebungsbranches modellieren eine Org-Landschaft, in die ein Paketteam gar nicht ausliefert.
Unverbindlich.