1 minute read

On Friday 1st and Friday 8th March our guest speaker Petr Aubrecht held an Open Mic session with the topic "Git Team Workflow".

The video contains only the main presnetation content, the whole discussion and Q&A section was cut off, because the video itself was too long (over 2.5 hours of raw material). The video is cut into the sections by the topics.

The abstract

Git is ubiquitous in software development nowadays, but using it differs quite significantly when working alone and when working in a team. Beginners may struggle in finding the right workflow for working with Git in a team.

This presentation provides some best practices learnt over years by an industry veteran with experience with working in development teams on various kinds of projects, both closed source and open source, including community-driven projects like Jakarta EE specification implementations.

Some key takeaways:

  • What gets to Git stays in Git, it just may be harder to find
  • Git commit messages should be meaningful
  • Feature branches should be short-lived to prevent issues with synchronizing them with the main branch
    • If they are long-lived, synchronize with main often
  • Developers should strive for a clean history, git rebase is helpful (and prevents railway station-type of history)
  • It is a good idea to squash work-in-progress commits
  • For small teams, it may be a good idea to just work on the same repository without PRs at all (but set up CI first so that pushes that break stuff are found quickly)
Git workflow example.
Git workflow example. Source: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow

The presentation slides are available at this link.

About the Speaker

Petr Aubrecht is a software developer and team leader with decades of experience. Starting out in academia (he holds a PhD in Artificial intelligence and biocybernetics), he later transferred into industry, where he has held several key developer positions, including senior software engineer, team lead etc. A keen Java developer and Jakarta EE (Java EE) enthusiast, he has recently taken his love for Jakarta EE to the next level by joining the team developing one of the Jakarta EE application servers - Payara.

Further reading: