Git checkpoint system
Manage git checkpoints (stashes) for safe code exploration and recovery.
When to invoke
- •Before making risky changes or refactoring
- •When you want a quick save point without committing
- •To restore previous state after experiments fail
- •To maintain multiple work-in-progress states
Usage
code
/checkpoint create [name] # Create a named checkpoint /checkpoint list # List checkpoints /checkpoint restore [name] # Restore a specific checkpoint /checkpoint pop # Restore the most recent checkpoint /checkpoint clear # Remove checkpoints
Instructions
Create checkpoint
- •Check if in a git repository
- •Check for uncommitted changes
- •Create a git stash with the name:
claude-checkpoint_YYYYMMDD_HHMMSS: [name] - •Confirm the checkpoint creation
List checkpoints
- •Run
git stash list - •Filter stashes that start with
claude-checkpoint - •Display in a formatted table:
- •Index (stash@{N})
- •Timestamp
- •Description
- •Number of files changed
Restore checkpoint
- •Find the stash matching the given name or index
- •Apply the stash with
git stash apply stash@{N} - •Do NOT drop the stash (keep it for safety)
- •Report restoration details
Pop checkpoint
- •Find the recent
claude-checkpointstash - •Apply it with
git stash pop stash@{N} - •Report restoration details
Clear checkpoints
- •List
claude-checkpointstashes - •Ask for confirmation before proceeding
- •Drop each matching stash
- •Report removal count
Examples
bash
# Create checkpoint before risky changes /checkpoint create "before refactoring auth module" # List checkpoints /checkpoint list # Restore if something went wrong /checkpoint restore "before refactoring auth module" # Quick restore of the recent one /checkpoint pop # Clean up old checkpoints /checkpoint clear
Notes
- •Checkpoints rely on git stash under the hood
- •Include untracked files in checkpoints
- •Checkpoints persist across sessions
- •Apply descriptive names for identification