When Git can't auto-merge, it writes both versions into the file with markers:
<<<<<<< HEAD
your version
=======
their version
>>>>>>> feature/auth
Workflow:
git status lists "both modified" files.
- Open each, decide what survives, remove the markers.
git add <file> once it's resolved.
git commit finalizes the merge (or git merge --continue / git rebase --continue if mid-operation).
For three-way diffs while editing, set:
git config merge.conflictstyle zdiff3
That adds a third pane showing the common ancestor — much easier to reason about what each side changed.
Bail out at any time: git merge --abort or git rebase --abort.