DEV Community

Omibranch
Omibranch

Posted on • Originally published at github.com

gitty — Git CLI that speaks human: replace git add/commit/push with one word

gitty — Git CLI that speaks human

If you use Git daily, you know the ritual:

git add .
git commit -m "fix stuff"
git push origin main
Enter fullscreen mode Exit fullscreen mode

Every. Single. Time.

gitty collapses that into one word:

gitty up
Enter fullscreen mode Exit fullscreen mode

That's it. Stage everything, auto-commit with a timestamp, and push — one command.

What is gitty?

gitty is a single Go binary (~6 MB, zero dependencies) that wraps Git and the GitHub CLI into short, human-readable commands. It doesn't replace Git — it sits on top and handles the tedious parts.

Installation

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/Omibranch/gitty/master/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

Arch Linux:

yay -S gitty-cli
Enter fullscreen mode Exit fullscreen mode

Windows:

winget install Omibranch.Gitty
Enter fullscreen mode Exit fullscreen mode

Core commands

gitty up — the workhorse

gitty up                        # stage + auto-commit + push
gitty up --commit "fix: typo"   # with your own message
Enter fullscreen mode Exit fullscreen mode

Smart pull

gitty pull main          # safe pull — never overwrites local files
gitty pull main --hard   # pull + overwrite
Enter fullscreen mode Exit fullscreen mode

Shorthand syntax

gitty uses = for "to" and ~ for "from":

gitty push=main       # push to main
gitty pull~dev        # pull from dev
Enter fullscreen mode Exit fullscreen mode

Selective commit — send only specific lines

gitty pick main.go 10-20        # send only lines 10–20
gitty pick main.go start1-end1  # or by code markers #gitty:start1
Enter fullscreen mode Exit fullscreen mode

Conflict resolution

gitty fix <file>   # interactive picker: keep mine / take theirs / merge both
Enter fullscreen mode Exit fullscreen mode

Repo management

gitty add repo "my-project" --public   # create GitHub repo + link folder
gitty rename branch "old"=="new"       # rename branch locally AND on remote
gitty erase secrets.txt                # remove file from ALL past commits
Enter fullscreen mode Exit fullscreen mode

Checkpoints (tags)

gitty checkpoint "v1" in main   # tag current state
gitty restore "v1"              # roll back to it
Enter fullscreen mode Exit fullscreen mode

Aliases

gitty alias save "up --commit"          # define alias
gitty alias deploy "up and push=prod"   # chain commands with 'and'
gitty save "my message"                 # use alias
Enter fullscreen mode Exit fullscreen mode

Why gitty instead of git aliases?

  • Portable config: .gittyconf lives in the repo, shared with the team
  • Safe defaults: pull never overwrites by default
  • Cross-platform: same binary on Linux, macOS, and Windows
  • GitHub integration: create repos, rename them, erase secrets — no browser needed
  • Zero deps: just one binary, no Python/Ruby/Node required

Proxy support

gitty up --proxy "http://user:pass@1.2.3.4:8080"
Enter fullscreen mode Exit fullscreen mode

Build from source

git clone https://github.com/Omibranch/gitty
cd gitty/source
go build -ldflags="-s -w" -o ../gitty .
Enter fullscreen mode Exit fullscreen mode

Requires Go 1.21+. No external dependencies.


Project: github.com/Omibranch/gitty · v2.2.0 · MIT License

Top comments (0)