Skip to main content

GitGo CLI - Your Fast Git Companion. Simplifies git push, link, stash, and user management.

Project description

GitGo

Stop typing the same five Git commands. Run one instead.

PyPI version Python 3.8+ License: GPL v3 Platform

GitGo demo


GitGo wraps your most repetitive Git operations — init, add, commit, push, branch, stash — into short, memorable commands. It also handles the friction points most tools ignore: automatic SSH setup, HTTPS-to-SSH conversion, and a human-friendly stash interface called state management.

# Instead of this:
git init && git add . && git commit -m "init" && git remote add origin <url> && git push -u origin main

# Run this:
gitgo link https://github.com/username/repo.git "init"

Contents


Installation

pip install pygitgo

Verify the install:

gitgo -r

Termux (Android): Works natively. GitGo detects the Termux environment automatically and adjusts install paths and browser behavior accordingly.

Install from source

git clone https://github.com/Huerte/GitGo.git
cd GitGo
pip install -e .

Prerequisites

  • Python 3.8+
  • Git 2.x+git-scm.com
  • OpenSSH — required for gitgo user login (pre-installed on most systems)
  • A GitHub account

Quick Start

1. Set up your identity

On first use, run the login wizard. GitGo generates an SSH key, prints the public key, and opens your GitHub SSH settings page automatically.

gitgo user login

2. Link a new project to GitHub

Point GitGo at an existing empty GitHub repository. It will initialize Git, stage everything, make the first commit, and push — handling branch naming and merge conflicts with an existing remote automatically.

gitgo link https://github.com/username/repo.git "Initial commit"

3. Push changes

# Push to an existing branch
gitgo push main "Fix auth bug"

# Create a new branch and push
gitgo push -n feature/login "Add login flow"

4. Save your work-in-progress

gitgo state save "halfway through refactor"
gitgo state list
gitgo state load 1

Command Reference

gitgo push

Stages all changes, commits, and pushes in one command.

gitgo push [branch] [message]
gitgo push -n [branch] [message]   # create new branch first
Flag Description
-n, new Create a new branch before pushing

If there are no new changes but unpushed commits exist, GitGo detects this and pushes without creating an empty commit.


gitgo link

Initializes a Git repository in the current directory, connects it to a remote, and pushes. Handles an already-initialized repo gracefully, and pulls unrelated histories automatically if the remote already has commits.

gitgo link <github_repo_url> [commit_message]

gitgo state

A human-readable interface over git stash. States are named and listed by index so you never have to remember stash@{2}.

gitgo state list              # show all saved states
gitgo state save [name]       # save current work (default name: Auto-Save)
gitgo state load [id]         # restore a state by index
gitgo state delete [id]       # delete a state by index
gitgo state delete -a         # delete all saved states

Short aliases: -l, -s, -o, -d


gitgo user

gitgo user              # show current Git identity
gitgo user login        # generate SSH key and configure Git identity
gitgo user logout       # remove SSH keys and Git identity config

Global flags

gitgo -h        # help
gitgo -v        # version
gitgo -r        # verify GitGo is ready

How It Works

SSH auto-setupgitgo user login generates an ed25519 SSH key, adds it to ssh-agent, prints the public key, and opens github.com/settings/ssh/new in your browser. After you add the key, GitGo verifies the connection automatically.

HTTPS to SSH conversion — If your remote is set to an HTTPS URL and your SSH is configured, GitGo silently converts the remote to SSH before pushing. No manual git remote set-url required.

Termux compatibility — GitGo detects Termux via environment variables and file paths, adjusts binary locations ($PREFIX/bin), uses termux-open for browser actions, and handles the detected dubious ownership Git error that commonly appears in shared Android storage.

State managementgitgo state wraps git stash with named saves, indexed listing, and confirmation prompts. Under the hood it uses git stash push -m, git stash apply, and git stash drop.


Contributing

Issues and pull requests are welcome.

  1. Fork the repository
  2. Create a branch: git checkout -b fix/your-fix
  3. Make your change and add tests if applicable
  4. Push and open a PR against main

Please open an issue first for significant changes so we can discuss the approach.


License

GPLv3 — see LICENSE for details.


Built by Jerald Huerte · Cantilan, Surigao del Sur, Philippines

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygitgo-1.0.0.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pygitgo-1.0.0-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file pygitgo-1.0.0.tar.gz.

File metadata

  • Download URL: pygitgo-1.0.0.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pygitgo-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cee876b5aba011d75e67cb22b0ce99c3b5efefe598f42094361ef95c076f65f0
MD5 a2316c1967ee6a0d393fd63221a6b6c5
BLAKE2b-256 c3fe937c7afbc173f4132c22548ccca105ad2c64da348bf0a484bb4758737af1

See more details on using hashes here.

File details

Details for the file pygitgo-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pygitgo-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pygitgo-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ce20acd2d8891c67d8c463a07ad734a5e769d3eb2cee90b2add814877071fcc
MD5 8c96ad05f0a28b9d566ccd818096d970
BLAKE2b-256 3458de7dbd3f3e4ade724ff81639493cc3a108234b80fbe39e98a69f547b83b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page