Skip to main content

An Efficient Git Workflow For High-Stakes Projects

Janson | Day 1 | 13:00 - 13:50 | Speakers: Vladislav Shpilevoy

An Efficient Git Workflow For High-Stakes Projects
A picture of the main stage at FOSDEM 2024
Open in browser

Notes

Abstract

Git is a tool most programmers rely on, whether for work or personal projects. It’s far more than just a method for syncing local and remote changes. Git embodies a way of thinking that serves as the foundation for development workflows and steers project evolution.

At its core, Git has essential concepts such as commits, change history, branching, rebasing, and merging. While Git offers many features, these are its heart. Misusing them can lead to significant opportunity costs, while striking the right balance simplifies development at all levels and benefits the project’s community (if it has any).

In this talk I am sharing my own experience how applying these core concepts in real projects significantly accelerates development, especially in mission-critical systems. I’ll cover specifically the following topics with true examples from my work places, both open and closed source:

  • The importance of commit “atomicity” and what it means.
  • The cost and value of maintaining a clean commit history.
  • How “multi-commit patchsets” can accelerate development and code review.
  • Using rebase as a method for constructing patchsets.
  • Merge-Commits vs Fast-Forward.

All of that combined into a framework that I call "Atomic Flow".

Many teams enforce strict Git practices based on these key principles, and for good reason. I’ve worked on projects that fully harnessed Git’s potential from the outset, as well as those that initially overlooked its strengths but later embraced them. My goal is to help more teams achieve greater efficiency by adopting these best practices, provided their project highly depends on uncompromising code quality and easy maintenance. This is what "Atomic Flow" is about.


Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.