Skip to main content

Git automation CLI — one command to add, commit, pull & push with smart commit messages, TUI, and GitHub repo creation

Project description

╭━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╮
┃                                                                    ┃
┃    ██████╗ ██╗   ██╗███╗   ██╗      ██████╗ ██╗████████╗         ┃
┃    ██╔══██╗██║   ██║████╗  ██║     ██╔════╝ ██║╚══██╔══╝         ┃
┃    ██████╔╝██║   ██║██╔██╗ ██║     ██║  ███╗██║   ██║            ┃
┃    ██╔══██╗██║   ██║██║╚██╗██║     ██║   ██║██║   ██║            ┃
┃    ██║  ██║╚██████╔╝██║ ╚████║     ╚██████╔╝██║   ██║            ┃
┃    ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝      ╚═════╝ ╚═╝   ╚═╝            ┃
┃                                                                    ┃
┃              ⚡ Git Operations Made Effortless ⚡                  ┃
┃          One Command · Zero Hassle · Full Control                 ┃
┃                                                                    ┃
╰━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╯

PyPI version Downloads Tests Python 3.8+ License: MIT PyPI - Status GitHub Stars GitHub Release

Stop memorising Git commands. Start shipping code.

RUN-GIT is a Python-powered CLI that wraps Git's most common workflows into a single, intuitive command — with auto commit messages, interactive menus, branch management, GitHub repo creation, and more.

📦 Install · 🚀 Quick Start · 📖 Commands · 🏗️ Architecture


✨ Why RUN-GIT?

Tired of typing four commands every time you want to save your work?

# The old way — every single time
git add .
git commit -m "update"
git pull origin main
git push origin main

# The RUN-GIT way
run-git push

That's it. One command does all four steps, auto-generates a meaningful commit message, handles conflicts, and pushes — safely.


🎯 Features

Feature Description
One-Command Push run-git push does add → commit → pull → push automatically
🤖 Smart Commit Messages Auto-generates Conventional Commits style messages based on your changes
🎨 Interactive TUI Full terminal menu — no flags to remember
🆕 GitHub Repo Creator Create public/private repos from the CLI without leaving your terminal
🌿 Branch Management Create, switch, merge, and delete branches with simple commands
🌳 Commit Graph Visualize commit history with ASCII graphs and file diffs
🔐 Secret File Guard Warns you before accidentally pushing .env, tokens, or credentials
🔀 Conflict Helper Guided, interactive merge-conflict resolution
🔄 Smart Sync Pull + push in one step, with auto-retry on failure
📊 Rich Status View Colour-coded, table-based status output powered by Rich
🔧 Remote Management Intelligently handles existing remotes and URL mismatches

📦 Installation

# Install
pip install run-git

# Upgrade to latest version
pip install --upgrade run-git

Requires Python 3.8+. Works on macOS, Linux, and Windows.

First time? Set your GitHub token once with run-git init and you're ready to go. Already installed? Upgrade with pip install --upgrade run-git


🚀 Quick Start

Push your changes (most common workflow)

run-git push                        # auto commit message + push
run-git push -m "feat: add login"  # custom commit message

Launch the interactive menu

run-git          # full TUI — no commands to memorise

Create a new GitHub repository

run-git new my-project                              # guided wizard
run-git new my-project --quick                      # sensible defaults, no prompts
run-git new my-api -d "REST API" --public -g Python -l MIT   # full control

Initialise a repository

run-git init                                    # new local repo
run-git init https://github.com/user/repo.git  # clone existing repo

📖 Command Reference

Command Description
run-git Open the interactive TUI menu
run-git push Add, commit, pull, and push in one step
run-git push -m "<msg>" Push with a custom commit message
run-git new <name> Create a new GitHub repository
run-git init Initialise a local or cloned repository
run-git status Rich colour-coded repository status
run-git log Formatted commit history
run-git graph Visual commit history (table view)
run-git graph --graph ASCII graph with branch lines
run-git graph --tree Branch tree overview
run-git graph --commit <hash> View specific commit details
run-git graph --commit <hash> --diff View commit with file changes
run-git graph -i Interactive commit selection
run-git branch List all branches
run-git branch <name> Create a new branch
run-git switch <name> Switch to a branch
run-git merge <name> Merge a branch into the current one
run-git pull Pull latest changes
run-git sync Pull then push (keep in sync)
run-git remote Show configured remotes
run-git stash Stash uncommitted changes
run-git undo Undo the last commit (keeps changes staged)
run-git --version Show installed version
run-git --help Show help for any command

🏗️ Architecture

RUN-GIT v1.2.0+ features a modular, maintainable architecture:

gitpush/
├── cli.py                    # Main CLI entry point (59 lines)
├── commands/                 # Modular command handlers
│   ├── push.py              # Push command
│   ├── init.py              # Init command
│   ├── status.py            # Status & log commands
│   ├── branch.py            # Branch operations
│   ├── remote.py            # Remote management
│   ├── stash.py             # Stash operations
│   ├── github.py            # GitHub integration
│   └── graph.py             # Commit graph visualization
├── core/                    # Business logic
│   ├── git_operations.py    # Git operations
│   ├── commit_generator.py  # Auto commit messages
│   ├── conflict_resolver.py # Merge conflict handling
│   ├── github_manager.py    # GitHub API
│   └── graph_renderer.py    # Graph rendering logic
├── ui/                      # Terminal UI
│   ├── banner.py            # Banner & messages
│   └── interactive.py       # Interactive menus
├── utils/                   # Utilities
│   ├── validators.py         # Input validation
│   ├── formatters.py        # Output formatting
│   └── file_helpers.py     # File operations
├── config/                  # Configuration
│   └── settings.py          # Settings management
└── exceptions.py            # Custom exceptions

Benefits

  • Maintainable: Each command is isolated in its own module
  • Testable: Unit test each component independently
  • Extensible: Add new commands easily
  • Clean Code: Reusable utilities and proper error handling

🤖 Auto Commit Messages

RUN-GIT analyses your staged changes and generates Conventional Commits style messages automatically:

feat: add authentication module (3 files added)
fix: update user validation logic (2 files modified)
docs: update README and contributing guide (1 file modified)
refactor: remove deprecated helper functions (2 files deleted)

No more git commit -m "stuff" or git commit -m "fix".


🆚 How Does It Compare?

Raw Git GitHub CLI (gh) RUN-GIT
Push in one command
Auto commit messages
Interactive TUI menu Partial
Create GitHub repos
Secret file warnings
Learning curve High Medium Zero

RUN-GIT is a speed layer on top of Git — not a replacement. Use it for daily work; reach for git or gh when you need fine-grained control.


💡 Who Is It For?

  • 🎓 Students & beginners learning Git without drowning in flags
  • 🚀 Hackathon builders who need to ship fast
  • Indie developers doing solo projects with quick iteration cycles
  • 🔁 Any developer who runs the same four Git commands dozens of times a day

🤝 Contributing

Contributions, bug reports, and feature requests are all welcome!

# Clone and setup
git clone https://github.com/himanshu231204/gitpush.git
cd gitpush

# Install in development mode
pip install -e ".[test]"

# Run tests
pytest

📝 License

Distributed under the MIT License — see LICENSE for details.


👨‍💻 Author

Himanshu Kumar@himanshu231204

Built with ❤️ to make every developer's Git life a little simpler.


If RUN-GIT saves you time, please consider giving it a ⭐ — it helps others find the project!

Star History Chart

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

run_git-1.3.0.tar.gz (379.5 kB view details)

Uploaded Source

Built Distribution

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

run_git-1.3.0-py3-none-any.whl (68.1 kB view details)

Uploaded Python 3

File details

Details for the file run_git-1.3.0.tar.gz.

File metadata

  • Download URL: run_git-1.3.0.tar.gz
  • Upload date:
  • Size: 379.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for run_git-1.3.0.tar.gz
Algorithm Hash digest
SHA256 422e159fae84ca1c6a68ad527cba9afe22b3bde27bfe9979c62d42353bbbae54
MD5 5a3369f6cd829462736057e64e9499f6
BLAKE2b-256 6aa05a144ffd04eb39db2447ad30e295aa986ba95600be47940e36da08ac586a

See more details on using hashes here.

File details

Details for the file run_git-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: run_git-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 68.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for run_git-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d79897ed2e990a9a51eafd034a0c1afec16cc790f223ec0ca6a36d0814eebc57
MD5 9f75cb64f3bb214d5971c2bbc4fe9f9f
BLAKE2b-256 43c041853157af3cc4b8829d1a5293af3abb8faf90d6d714e7326268718e20cf

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