Undo git-branchless operations - recover from mistakes interactively
81
77%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/git-workflow/skills/bl-undo/SKILL.mdCategory: Git Workflow
Recover from mistakes using git-branchless's powerful undo system. Browse repository history and restore previous states.
/bl-undo [options]| Option | Description |
|---|---|
| (none) | Quick undo of last operation |
-i | Interactive mode - browse history |
--hide <hash> | Hide a commit from smartlog |
--unhide <hash> | Restore a hidden commit |
# Undo the last operation
/bl-undo
# Interactive undo - browse and select state
/bl-undo -i
# Hide an experimental commit
/bl-undo --hide abc1234
# Restore a hidden commit
/bl-undo --unhide abc1234This command delegates to the bl-undo-expert agent:
Task(subagent_type="git-workflow:bl-undo-expert",
prompt="Execute undo: <options>")Assess Situation
git slExecute Undo
git undo, confirmgit undo -i, guide navigationVerify Result
git slUser: /bl-undo
Agent: Checking last operation...
Last operation: git rebase -i main
- Dropped: "feat: add OAuth"
- Reordered: 2 commits
This will restore:
◆ abc1234 (main) initial commit
┃
◯ def5678 feat: add auth base
┃
◯ ghi9012 feat: add OAuth ← Will be restored
┃
◯ jkl3456 feat: add Google login
┃
● mno7890 feat: add GitHub login
Undo this operation? [y/n]:User: /bl-undo -i
Agent: Opening interactive undo...
git undo -i
This opens a browser interface. Use:
← → arrow keys to navigate through time
Each state shows the smartlog at that point
Find the state BEFORE your mistake
Press Enter to select, then y to confirm
[User navigates in terminal]
After user confirms...
◆ abc1234 (main) initial commit
┃
◯ def5678 feat: add User class
┃
◯ ghi9012 feat: add validation
┃
● jkl3456 feat: add repository
Restored to state before the bad rebase.
All 3 commits recovered.User: /bl-undo --hide abc1234
Agent: Hiding commit abc1234...
Before:
◆ main initial commit
┃
◯ abc1234 feat: experimental ← Will be hidden
┃
◯ def5678 feat: add User class
┃
● ghi9012 feat: add validation
git hide abc1234
After:
◆ main initial commit
┃
◯ def5678 feat: add User class
┃
● ghi9012 feat: add validation
Commit hidden from smartlog.
⚠️ Warning: Hidden commits may be garbage collected.
To restore later: /bl-undo --unhide abc1234User: I accidentally dropped a commit during rebase!
Agent: Let's recover it with interactive undo...
/bl-undo -i
Navigate to state before the rebase, select, confirm.User: I amended the wrong commit!
Agent: Quick undo will restore it...
/bl-undo
Confirm to restore pre-amend state.User: My stack is completely messed up after multiple operations
Agent: Interactive undo can go back multiple operations...
/bl-undo -i
Navigate back to when the stack was correct.
May need to go back several states.User: I have some experimental commits cluttering my smartlog
Agent: Hide them to clean up the view...
/bl-undo --hide <hash>
They won't show in git sl but can be restored.| Error | Resolution |
|---|---|
| "Nothing to undo" | No recent undoable operations |
| "Working directory dirty" | Stash or commit changes first |
| "Would cause conflicts" | Use -i to find different restore point |
| Lost uncommitted changes | Cannot recover - check editor undo |
| Pushed commits | Must revert on remote instead |
-i for complex recovery - Better visibility of historygit sl after undo0ebe7ae
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.