Git can support your project not just with version control, but also with collaboration and release management. Understanding how Git workflow patterns can help or hinder a project will give you the knowledge to evaluate and adapt your project’s Git processes effectively.
Git workflow employs two parallel long-running branches to record the history of the project,
- Master — is always ready to be released on LIVE, with everything fully tested and approved (production-ready).
- Hotfix — Maintenance or “hotfix” branches are used to quickly patch production releases. Hotfix branches are a lot like release branches and feature branches except they’re based on
- Develop — is the branch to which all feature branches are merged and where all tests are performed. Only when everything’s been thoroughly checked and fixed it can be merged to the
- Feature — Each new feature should reside in its own branch, which can be pushed to the
developbranch as their parent one.
Throughout this guide, I will isolate software development process patterns found in common Git workflows. Knowledge of these will help you find a direction when joining, creating or growing a development team. The pros and cons of certain types of projects or teams will be highlighted within the workflow examples we explore so that you can pick and choose what might work well for your scenario.
This is not an introduction to using Git. There are fabulous guides and documentation for this out there already. You will benefit from this Git workflow guide if you already have experience within an application development team and have faced workflow snags, integration implosions or git-tastrophes — these patterns may shed some light on how to avoid those situations in the future.