When googling “git branch model”, this is the first entry. It is very close to what we do at iwoca. In pydsl I don’t use a development branch; I just use master and feature branches, merging them whenever they are ready.
The more I use git, the more I realize how cheap is to branch and remerge, and how easy is to have all the branches living in the same repository at the same time. Subversion and CVS got the versioning right, but made branching complicated.
Diff to the common ancestor (like gitlab, github and bitbucket)
git diff master... < common ancestor
Merge but always resolve towards the branch merging in
git merge --strategy-option theirs master
Make an interactive rebase without tripping with the merges into the branch
git rebase -pi or
git rebase -ri