Resolve a Conflict

Git merges most things by itself. It only stops when both sides changed the same thing, because then there is no correct answer it can pick for you.

A conflict is not an error and nothing is broken — the merge is simply paused, waiting for a decision. Your repository sits in a half-merged state until you finish it or back out with merge --abort.

Notice what does not cause a conflict: two branches changing different things merge cleanly, however far they have diverged.

Exercises

  1. Exercise 1. Both branches changed the same thing. Start the merge, see it pause, then resolve it to finish.
  2. Exercise 2. The same divergent shape, but these two branches touched different files. Merge — and notice it finishes on its own, with no pause at all.