smithery.ai

git:conflicts

Resolving git merge conflicts during rebase, merge, or cherry-pick. Use when conflicts arise. Can also drive the operation to completion and push when asked (e.g. "fix conflicts and push").

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Edit, Grep, Glob, AskUserQuestion, Bash(git status:*), Bash(git diff:*), Bash(git show :*:*), Bash(git add:*), Bash(git log:*), Bash(git rebase:*), Bash(git merge:*), Bash(git cherry-pick:*), Bash(git rerere:*), Bash(git stash:*), Bash(git update-index:*), Bash(git fetch:*), Bash(git push:*), Bash(bun ${CLAUDE_PLUGIN_ROOT}/skills/conflicts/scripts/*)
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,732 B
  • docs SUMMARY.md 118 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Git Conflicts

Status

!bun ${CLAUDEPLUGINROOT}/skills/conflicts/scripts/status.ts

Context

!bun ${CLAUDEPLUGINROOT}/skills/conflicts/scripts/context.ts

Upstream

!bun ${CLAUDEPLUGINROOT}/skills/conflicts/scripts/upstream.ts

Three-Way Access

Git stores three versions in staging slots during a conflict:

Slot Version Command
:1:path Base (common ancestor) git show :1:path
:2:path Ours (HEAD) git show :2:path
:3:path Theirs (incoming) git show :3:path

Resolving

For each conflicted file:

  • Read the three slots above to understand base, ours, and theirs.
  • Edit the file to produce the correct merged result, then git add it.
  • For generated files (lockfiles, build artifacts), delete and regenerate rather than merge by hand. Follow the project's CLAUDE.md for lockfile-specific guidance.
  • Never silently drop either side. When in doubt, keep both and ask.
  • If a conflict is in a file you don't understand, ask rather than guess.

Committing and Pushing

This step runs only when you are asked to take the operation to completion: the --push argument (its alias push), or a request like "fix conflicts and push". By default, on auto-activation or when asked only to resolve, stop after git add and do not commit, continue, or push.

When driving to completion:

  1. Initiate the merge if needed. If no rebase, merge, or cherry-pick is in progress but upstream has diverged, run git merge origin/<default-branch> to surface conflicts. If it merges cleanly, push and finish.
  2. Assess complexity before resolving.

- Simple (generated files only, or fewer than 3 conflicts across 1-2 files with obvious resolutions): proceed. - Complex (3+ files, non-trivial code, or ambiguous intent): summarize the conflicts and confirm with the user via AskUserQuestion before resolving.

  1. Resolve per the section above.
  2. Stash unrelated dirty files. Check git status --porcelain for unstaged changes beyond the resolved conflicts. Try git stash push -m "conflicts: temp" -- <files> for all of them at once. If the stash fails (the sandbox may block unlinking protected files like .mcp.json), stash individually and skip failures. For files that cannot be stashed, hide them with git update-index --assume-unchanged <file>.
  3. Continue the operation with git rebase --continue, git merge --continue, or git cherry-pick --continue.
  4. Push and restore. Run git push, then restore hidden files with git update-index --no-assume-unchanged <file> and git stash pop if anything was stashed.

References

  • [rerere.md](references/rerere.md) — Automatic resolution reuse for repeated rebases