oops

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2026 License: MIT Imports: 1 Imported by: 0

README ΒΆ

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

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

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
internal
git

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL