I’d never really set aside some time to look at the mechanics of Git in more depth. After a friend equated version control with a superpower in the context of development and engineering, I decided to change that. Learn Git Branching provided an engaging way to dig into what Git can do fundamentally, and in more advanced cases. I actually checked it out in October so this retro is a catch-up.
- Summary
- Version control is a superpower that allows one to time travel across project state. It foils complexity by atomising actions and enabling reversals. This means greater capacity for coordination, rapid additions and subtractions, bolder actions and experiments, and emergent outcomes both individually and collectively.
- Key takeaways
- Version control is akin to time travel
- The ability to travel in time whilst working on a project is a serious foil for complexity
- Git (a particular application of version control generally) provides more margin for error; confidence to act more boldly and ability to reverse actions in an ad hoc manner individually
- Version control and coordination / sync of efforts is infrastructure for effective collaboration across complex projects over time
- Added to multiplayer efforts, version control can lead to emergent effects, rapid iterations and incremental developments, and a drive for bold and audacious moves
- Applications
- Version control and team collaboration for various development and engineering projects
- Expressive creative projects (like branching fiction)
- Questions and gaps
- What’s the simplest, most expressive and composable subset of Git functionality?
- Am I using Git functionality adequately in my current processes?
- What’s the right level of atomicity for commits, and for larger units like branches?
- How does one more effectively manage a portfolio of repos/projects, actions and auths?
- Next steps
- Create basic standardised Git process for use in day-to-day DevEng ops
- Clarify basic management practices for Git across multiple projects
- Reflection
- Rate understanding of topic from 1-5 (least to most)
- 2/5
- Describe in 2-3 sentences how this learning connects to existing knowledge
- It’s given me a basic orientation that I can leverage in various software projects (and potentially in creative projects, too). Actions like analysing, synthesising, adding and subtracting from projects becomes easier over time when version control is introduced; it makes it easier to fuck up and harder to be defeated by one’s FAFOing.
- Rate understanding of topic from 1-5 (least to most)
