When working with GIT, beyond a certain level, chances are to get the branch tree more an more messy. In this case using a consistent workflow is the only known solution to avoid madness and headaches.
I love GIT, its simplicity and how much powerful it is. Yet, as in the famous quote ‘with great power comes great responsibility’ it takes an agreed workflow to handle complex cooperative scenarios on the file editing.
I found this article and I have not felt the need to search for anything more.