This seems like a simple enough question, but it's generated a surprising amount of conversation in the office. Should developers share a branch, e.g. while working on a feature? Or should each developer use their own branch and if collaboration with other team-members is required, then a separate branch (something like a release branch) should be used for the purpose?
I haven't seen any of the major branching strategies address this directly (Git Flow, GitHub Flow, or GitLab Flow). Sharing a single feature branch lets multiple developers easily collaborate, and any cleanup of the commits/messages can be done when a pull-request is created and/or merged. However, even 2 developers can butt heads when working on the same branch, e.g. if one of them uses merges and the other uses rebases. Is there a best practice recommendation here?