Where I work, there are several different git styles, but they all work nicely together if everyone adheres to one simple rule. I'm going to say it loudly, because it's important:
origin/master must be deployable.
If that means developing in a branch, fine. If that means accumulating several patches locally in master that you haven't pushed yet because you're not done, fine. Just make sure that origin/master can always be deployed to the servers.
Actually, come to think of it, both of those things are pretty much equivalent to using branches for anything non-trivial.
origin/master must be deployable.
If that means developing in a branch, fine. If that means accumulating several patches locally in master that you haven't pushed yet because you're not done, fine. Just make sure that origin/master can always be deployed to the servers.
Actually, come to think of it, both of those things are pretty much equivalent to using branches for anything non-trivial.