The other really powerful thing with git is the ability to keep a long running branch and continually rebase with something like develop/master. That way you can resolve conflicts outside of the main line and then reduce the chances of a hairy merge.
I've found this to be very useful with large refactorings. It eases the pressure of having to stabilize everything before a release. If the refactoring isn't ready for this release, don't merge it back in.