9 ms·
the team has 2 deliverables: 1. a ref (branch or tag) that builds (compiles & passes all tests including UAT) 2. every shared ref has a clean revision history
by tonymet 3y ago
the team has 2 deliverables:
1. a ref (branch or tag) that builds (compiles & passes all tests including UAT)
2. every shared ref has a clean revision history that allows for graceful change management ( read changelog, fork, integrate, revert, A/B test)
Any ref shared by a team member (e.g. git push) must meet those two qualities. Team members must reconcile refs on their end (e.g. rebase) before they can submit a new ref meeting those expectations.
This way you are not prescribing a workflow (e.g. git-flow). The team needs to agree on that to their software delivery pipeline requirements.
In order to deliver these two expectations, they need to understand refs (pointers to a digraph) and how to manage them (rebase). tell them to RTFM the git manual on those topics.
Just like memory management, pointers, algos etc these skills are essential . They are not a "nice to have" to build software.