It opens a GUI that steps you through each conflict, and you get to choose how to merge.Sometimes it requires a bit of hand editing afterwards, but usually it's enough by itself.I'm usually more successful looking at the conflict markers in a text editor and using git log as a supplement.Here are a few tips: The best thing I have found is to use the "diff3" merge conflict style: The middle section is what the common ancestor looked like.(So it doesn't include commits that already exist in both branches before merging.) This helps you ignore diff hunks that clearly are not a factor in your current conflict. (Heck, even a merge without conflicts can break working code.) Plan ahead; communicate with co-workers.
If you can't work serially (due to time pressure, maybe), then communicating about expected merge conflicts at least helps you solve the problems sooner while the details are still fresh in mind.Often times when estimating software projects we don't include enough time for overhead items like handling a gnarly merge, so it feels like a real drag to spend several hours dissecting each conflict.In the long run, planning ahead and being aware of what others are working on are the best tools for anticipating merge conflicts and prepare yourself to resolve them correctly in less time.For example, if you know that you and another person are both working on different refactoring that will both affect the same set of files, you should talk to each other ahead of time and get a better sense for what types of changes each of you is making.You might save considerable time and effort if you conduct your planned changes serially rather than in parallel.