Today I learned about git flow.
It's a little utility that sits on top of git and makes my development flow much easier.
It will also make you forget
git pull --rebase and
git merge --squash branch immediately, because you won't need it again... maybe...
Oh and it has a VS Code extension!
How Git Flow works
Basically, the idea is that you have your
main branch with the release,
develop for staging and all other branches have a "prefix" to make clear what they're for these:
Then git flow enables easy rebasing in your feature branches while your developing. You can do mediocre git commits, as we do, and fix those nasty typos. And when the feature is ready, we can just squash those commits into a single big commit with the history preserved.
If you're developing the feature together, you can publish the feature and collaborate as per usual with git. Git flow just makes sure you get all the latest changes from both
develop and the feature branch.
When you're done, git flow helps you merge the feature and tidy up any remnant branches.
Source: Git Kraken
Just incredibly convenient, especially when working together on a software project.
Get it on Github