Skip to main content

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

Project description

GitGo

PyPI version Python 3.8+ License: GPL v3 Platform Tests

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

Report Bug · Request Feature


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"

Table of Contents


Demo

GitGo demo


Features

GitGo provides a CLI environment designed for faster and simpler Git workflows. Built to be intuitive, fast, and frictionless.

  • Simplified Git Operations: Replaces chained commands with single intuitive commands for linking, pushing, and stashing.
  • State Management: A human-readable interface over git stash. States are named and listed by index so you never have to remember cryptic stash references.
  • SSH Auto-Setup: Generates an SSH key, adds it to ssh-agent, and opens your GitHub settings automatically.
  • HTTPS to SSH Conversion: Silently converts the remote to SSH before pushing if your SSH is configured.
  • Termux Compatibility: Works natively on Android natively handling common issues like dubious ownership errors.

Installation Guide

Prerequisites

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

Install from PyPI

pip install pygitgo

Verify the installation:

gitgo -r

Note for Termux (Android): 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 .

Usage

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 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 already-initialized repos gracefully and pulls unrelated histories.

gitgo link <github_repo_url> [commit_message]

gitgo state

A human-readable interface over git stash.

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-Setup: gitgo user login generates an ed25519 SSH key, adds it to ssh-agent, prints the public key, and opens github.com/settings/ssh/new.
  • HTTPS to SSH Conversion: If your remote is set to HTTPS, GitGo converts the remote to SSH before pushing if SSH is configured. No git remote set-url is required.
  • Termux Compatibility: Detects Termux via environment variables, adjusts binary locations ($PREFIX/bin), uses termux-open for browser actions, and natively handles the detected dubious ownership Git error.
  • State Management: gitgo state wraps git stash with named saves, indexed listing, and confirmation prompts.

Contributing

Contributions are welcome and appreciated!

  1. Fork the Project
  2. Create a Feature Branch (git checkout -b feature/your-feature)
  3. Commit Changes
  4. Push to the Branch (git push origin feature/your-feature)
  5. Open a Pull Request

Credits


Huerte
Creator

Venomous-pie
Core Contributor

License

Distributed under the GPLv3 License. See LICENSE for details.


Created by Huerte with core contributions from Venomous-pie

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.2.tar.gz (31.3 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.2-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pygitgo-1.0.2.tar.gz
  • Upload date:
  • Size: 31.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pygitgo-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7b0e315d4f67876d5e3a5bb802ad5265d392883c8ca2507a18c04c0f04368f75
MD5 5e9a40955c286cdc50a4655f82c3646b
BLAKE2b-256 d56f7e05edaf69ca7378486bf0d1cc305a2f819cbb35dfa1b2f9102bd36c9b09

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygitgo-1.0.2.tar.gz:

Publisher: release.yml on Huerte/GitGo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pygitgo-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 30.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pygitgo-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bfdacdf694015feb70a9f684b9858dbe8a1e020a7da514d5c7153756e0db7158
MD5 3392512ed5ee1ff3b8b46d72a1ad400e
BLAKE2b-256 fff3fe016a0e2038b8f3f1e2acaa6cf5c08809c36eef8b32135eb4ed46aac09f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygitgo-1.0.2-py3-none-any.whl:

Publisher: release.yml on Huerte/GitGo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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