Diagnose a tangled git situation and give the exact, safe commands to fix it. Use when asked to undo a commit, recover lost work, fix a bad merge or rebase, resolve a detached HEAD, unstage files, or get out of a git mess. Produces the diagnosis, the precise commands to run in order, what each does, and a recovery note if something goes wrong.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add mohitagw15856/pm-claude-skills --skill git-troubleshooter --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Git Troubleshooter?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mohitagw15856-git-troubleshooter-pm-claude-skills)More formats (shields.io, HTML) on the badges page.
---
name: git-troubleshooter
description: "Diagnose a tangled git situation and give the exact, safe commands to fix it. Use when asked to undo a commit, recover lost work, fix a bad merge or rebase, resolve a detached HEAD, unstage files, or get out of a git mess. Produces the diagnosis, the precise commands to run in order, what each does, and a recovery note if something goes wrong."
---
# Git Troubleshooter Skill
Get the user un-stuck from git — calmly, safely, and without destroying work.
## Working from a brief
Infer the current state from what the user describes (and typical git output); label assumptions *(assumed — confirm)*. Always give a concrete command sequence. If a step is destructive, say so loudly *before* it.
## Input
What happened / what they want (e.g. "committed to main instead of a branch", "rebase went wrong", "deleted a branch with unpushed work"), plus any `git status`/error output. Infer the rest.
## Output Structure
### Diagnosis
One or two lines: what state the repo is in and why the user is stuck.
### Fix — run these in order
A numbered list of exact commands, each with a one-line note of what it does:
```
1. git reflog # find the lost commit's SHA
2. git checkout -b rescue <SHA> # recover it onto a new branch
```
Prefer **non-destructive** routes (branch, reflog, `--soft`) over destructive ones. Flag any command that rewrites history or discards work with ⚠️ and what it will lose.
### Safety net
How to undo if the fix doesn't do what they expected (usually `git reflog` + reset to the prior HEAD), plus a one-line habit to avoid the situation next time.
## Quality Checks
- [ ] The command sequence is exact and ordered (copy-pasteable)
- [ ] Destructive commands are clearly marked with what they destroy
- [ ] A non-destructive option is offered first where one exists
- [ ] A recovery/undo path is included
## Anti-Patterns
- [ ] Do not suggest `git push --force`, `reset --hard`, or `clean -fd` without a ⚠️ and a safer alternative first
- [ ] Do not give commands without saying what each one does
- [ ] Do not assume the remote state — ask or label it if it changes the safe path
- [ ] Do not skip `git reflog` when work might be recoverable — it usually is
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!