Copied!
v0.4.0 · TypeScript CLI · npm

OH MY
GIT

A friendly wrapper around common git tasks — commit, branch, push, pull, ship, and so much more.

npm install -g @coder11125/omg
25+ Commands
4 Dependencies
MIT License
>=18 Node.js
Scroll
// 01 — Power Commands

THE BIG
FOUR.

🚢 ship

One command to rule them all: stage → commit → fetch → rebase → push. Never type 5 commands in a row again. Shows PR URL hint for GitHub remotes.

omg ship "fix: handle null pointer"
omg ship -n # dry run
🆘 oops

Your git undo button. Uncommit, unstage, restore deleted branches from reflog. Because mistakes happen on Fridays.

omg oops uncommit
omg oops restore-branch
🔄 sync

Stash → checkout main → pull → prune dead branches → return → pop stash. The hokey pokey for your feature branch.

omg sync
omg sync -b develop
🏥 doctor

Repository health checks: detached HEAD, merge conflicts, large binaries, stash hoarding, and more. Pass --fix to auto-repair.

omg doctor
omg doctor --fix
🔍 blame

Line-by-line authorship with a heatmap of who really owns the file. Perfect for passive-aggressive code reviews.

omg blame src/index.ts
omg blame src/index.ts --stats
🎉 social

Contributor stats with humorous commentary. Find out who's doing all the work (spoiler: it's probably one person).

omg social
👑 award for top contributor
// Spinner Quips

While omg waits on git, spinners pick a random one-liner from a category matching what you're doing — followed by a dim · and the real task.

// Sample spinner output
Sweeping files onto the stage·Staging all changes
Rewriting history like a politician·Rebasing onto main
Sending your hopes upstream·Pushing to origin/main
Stethoscope on your repo·Analyzing repository
Taking emotional inventory·Analyzing repository status
Raising branches from reflog·Checking reflog for deleted branches
// 02 — All Commands

EVERYTHING
YOU NEED.

-c

Stage all changes and commit in one step. No Vim. No regrets.

omg -c "feat: add dark mode"
--visit

Checkout an existing branch with a spinner and clear feedback.

omg --visit feature/my-branch
status

Friendly summary: branch sync state, staged, unstaged, and untracked files.

omg status
--verbose

Show full git error messages instead of friendly translations. For the masochists.

omg push --verbose
omg --verbose -c "message"
combine flags

Combine flags in one invocation — commit then switch, all at once.

omg -c "wip: refactor" --visit main
config

Get or set git configuration without remembering the exact git syntax.

omg config user.name
omg config user.name "Ada Lovelace"
(no flags)

List all local branches. Current branch highlighted with *.

omg branch
-n <name>

Create a new branch, stay on current one.

omg branch -n feat/auth
-n <name> -s

Create and immediately switch to a new branch.

omg branch -n feat/auth -s
-d <name>

Safely delete a fully-merged branch. Guards against deleting your current branch.

omg branch -d old-feature
remote

List all configured remotes and their fetch URLs.

omg remote
omg remote https://github.com/you/repo.git
omg remote <url> upstream
push

Push commits to a remote. -f uses --force-with-lease (safer than --force). -u sets upstream.

omg push
omg push origin -u main
omg push -f
pull

Fetch and integrate changes. -r rebases instead of merge (keeps history clean).

omg pull
omg pull origin -r
fetch

Download objects and refs without merging. Fetches all remotes by default.

omg fetch
omg fetch origin
merge

Merge a branch into current. Supports --squash to hide the evidence and --abort to panic.

omg merge feat/auth
omg merge feat/auth --squash
omg merge --abort
rebase

Rebase current branch onto another — rewriting history like a politician.

omg rebase main
omg rebase --continue
omg rebase --abort
clone

Clone someone else's beautiful disaster. Optionally pass a custom directory name.

omg clone https://github.com/you/repo.git
omg clone <url> my-project
cherry-pick

Apply a commit from another branch. It's not stealing if it's version control.

omg cherry-pick abc1234
omg cherry-pick --continue
log

Commit history you can actually read. Defaults to 10 commits. --oneline for compact view.

omg log
omg log -n 20 --oneline
diff

Review changes before committing. --staged shows what you're about to regret.

omg diff
omg diff --staged
omg diff src/index.ts
blame

Line-by-line authorship. -L for a specific line. --stats shows who really owns the file.

omg blame src/index.ts
omg blame src/index.ts -L 42
omg blame src/index.ts --stats
revert

Undo a commit the right way — by making a new commit that undoes it. Won't get you fired.

omg revert abc1234
omg revert --continue
tag

Mark important milestones. Like v1.0.0 — "it barely works but marketing wants a release".

omg tag
omg tag v1.0.0 -m "Release"
reset

Time travel with varying degrees of danger. --hard is called that for a reason.

omg reset
omg reset --soft
omg reset --hard
(no args)

Stash current changes. Git's "hide your mess in the closet" feature.

omg stash
pop

Pop the most recent stash. Hope you remember what's in there.

omg stash pop
list

List all stashes — your abandoned children.

omg stash list
drop / apply

Drop a stash (let go of the past) or apply without removing (commitment issues).

omg stash drop 0
omg stash apply 0
oops uncommit

Undo the last commit, keeping your changes staged. Take-backsies without consequences.

omg oops uncommit
oops discard

Undo last commit AND discard changes. Nuclear option. There is no undo for this undo.

omg oops discard
oops unstage

Unstage all staged files. Stage fright cured. Changes preserved.

omg oops unstage
oops unadd

Unstage a specific file. Partial regret is a valid emotion.

omg oops unadd src/index.ts
oops restore-branch

Recover deleted branches from reflog. Lazarus mode for branches you miss.

omg oops restore-branch
oops (menu)

No action? Shows a recovery menu with all available options listed.

omg oops
init

Initialize a new git repository. The first step on a long journey of merge conflicts.

omg init
omg init my-project
omg init -m "Initial commit"
social

Contributor stats with humorous commentary. 👑 award for top contributor included.

omg social
update

Check for a newer version on npm and install it automatically. Self-improvement for your CLI.

omg update
config

Get or set any git config value locally. Scoped to the current repo by default.

omg config user.email
omg config user.email "ada@example.com"
bash — oh-my-project
// 03 — Quick Start

GET GOING
IN SECONDS.

Install

Install globally from npm. Exposes the omg binary on your PATH.

npm install -g @coder11125/omg
Verify

Confirm the install worked and check the version number.

omg --version
Help

Print all available commands and flags at any time.

omg --help
Update

Already installed? Stay up to date with a single command.

omg update