> **resolving-merge-conflicts** — chapter 11 of 35 in [mattpocock/skills](https://skillsdocs.com/mattpocock/skills).
>
> Book (all chapters, one file): https://skillsdocs.com/mattpocock/skills.md
> Machine manifest: https://skillsdocs.com/mattpocock/skills/.well-known/agent-skills/index.json
> Install the book: `npx skills add mattpocock/skills`
> Upstream: https://github.com/mattpocock/skills/blob/main/skills/engineering/resolving-merge-conflicts/SKILL.md @ `main`
> Raw bytes, no header: https://raw.githubusercontent.com/mattpocock/skills/main/skills/engineering/resolving-merge-conflicts/SKILL.md
> Base for relative paths: https://raw.githubusercontent.com/mattpocock/skills/main/skills/engineering/resolving-merge-conflicts/
> Licence: MIT — https://spdx.org/licenses/MIT.html
>
> Bundled files (1), referenced from this skill's directory:
>   - `agents/openai.yaml` — https://raw.githubusercontent.com/mattpocock/skills/main/skills/engineering/resolving-merge-conflicts/agents/openai.yaml
>
> Content © its authors, served unmodified. Takedown: https://github.com/DreambaseAI/skillsdocs/issues/new?labels=takedown&title=Takedown+request

<!-- Verbatim upstream SKILL.md follows, YAML frontmatter included. -->

---
name: resolving-merge-conflicts
description: "Use when you need to resolve an in-progress git merge/rebase conflict."
---

1. **See the current state** of the merge/rebase. Check git history, and the conflicting files.

2. **Find the primary sources** for each conflict. Understand deeply why each change was made, and what the original intent was. Read the commit messages, check the PRs, check original issues/tickets.

3. **Resolve each hunk.** Preserve both intents where possible. Where incompatible, pick the one matching the merge's stated goal and note the trade-off. Do **not** invent new behaviour. Always resolve; never `--abort`.

4. Discover the project's **automated checks** and run them — typically typecheck, then tests, then format. Fix anything the merge broke.

5. **Finish the merge/rebase.** Stage everything and commit. If rebasing, continue the rebase process until all commits are rebased.
