Oops - Simple File Versioning for Everyone π―
Oops! Made a mistake? No worries - you can always go back!
A single binary with zero runtime dependencies. Git-powered but Git-knowledge not required.
Installation
go install github.com/iyulab/oops@latest
Or download from GitHub Releases.
Requires: Git installed on your system
Quick Start
oops start essay.txt # π Start versioning
# ... write something ...
oops save "first draft" # πΈ Save a snapshot
# ... edit more ...
oops save "added conclusion" # πΈ Save another
oops history # π View all snapshots
oops oops! # β©οΈ Made a mistake? Go back!
Commands
Friendly Commands (Recommended)
| Command |
Description |
oops start <file> |
π Start versioning a file |
oops save [message] |
πΈ Save a snapshot |
oops back <N> |
βͺ Go back to snapshot #N |
oops oops! |
β©οΈ Undo (restore last saved state) |
oops history |
π View all snapshots |
oops changes |
π See what changed |
oops now |
βΉοΈ Show current status |
oops files |
π List tracked files |
oops done |
ποΈ Stop versioning |
Developer Aliases
If you're familiar with Git, these work too:
| Friendly |
Git-style |
start |
track |
save |
commit |
back |
checkout |
history |
log |
changes |
diff |
now |
status |
done |
untrack |
Examples
Basic Workflow
oops start notes.md # Snapshot #1 created
# ... write ...
oops save "brain dump" # Snapshot #2
# ... edit ...
oops save "organized thoughts" # Snapshot #3
Oops! Moments
# Accidentally deleted important text?
oops oops! # Restores to last saved state
# Want to see an older version?
oops back 1 # Go to snapshot #1
oops back 3 # Jump back to snapshot #3
See What Changed
oops changes # Unsaved changes vs last snapshot
oops changes 1 # Current vs snapshot #1
oops changes 1 3 # Compare snapshot #1 and #3
Check Status
oops now
# π File: notes.md
# π Snapshot: #3 (latest)
# βοΈ Status: Modified
#
# You have unsaved changes
# oops save Save your changes
# oops oops! Undo changes
How It Works
Oops uses Git under the hood, but hides all the complexity:
project/
βββ notes.md
βββ .oops/
βββ notes.md.git/ β Git repository (hidden)
- Each snapshot = Git commit + tag (v1, v2, v3...)
- Full Git delta compression for storage efficiency
- Works completely offline, no server needed
.oops/ automatically added to .gitignore
Use Cases
Perfect for:
- π Writers - essays, articles, manuscripts
- π Researchers - notes, data files
- βοΈ Config files - when you need quick rollback
- π Any single file you edit frequently
For multi-file projects: Use Git directly
Comparison
| Feature |
Oops |
Git |
| Learning curve |
5 minutes |
Hours |
| Commands to learn |
~5 |
~20+ |
| Single file focus |
β |
Multi-file |
| Server required |
No |
Optional |
| Storage efficiency |
Git-level |
Git |
| Undo mistakes |
oops oops! |
git checkout HEAD -- file |
Why "Oops"?
Because everyone makes mistakes when editing files. With Oops, you can simply say "oops!" and go back to a safe state. No complex commands, no fear of losing work.
License
MIT