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
🔐 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

pip install 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.


🚀 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 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.1.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
├── 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
├── 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.1.1.tar.gz (349.9 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.1.1-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: run_git-1.1.1.tar.gz
  • Upload date:
  • Size: 349.9 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.1.1.tar.gz
Algorithm Hash digest
SHA256 312546e295fe3caf1e62c0e9924a855fd9ea54e16bff2e288ffb64ffeec19001
MD5 86c2013e80e169e7f48017d57c780447
BLAKE2b-256 ae4ca9958b8a4f0516504292528466c38bf5767fc482465a87f620bdac617bec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: run_git-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 34.6 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ac0644075fda75630db94491ffd51996e0dc0de09ed1d50afc1189cbe731464f
MD5 567c3d435c6357a9d9c08cf0ad925fb2
BLAKE2b-256 c0f547ea995de6b136ad55d6b56fe4b718723d3c699e71b9a82b0a80fa9bb493

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