Skip to content

himanshu231204/gitpush

Repository files navigation

╭━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╮
┃                                                                    ┃
┃    ██████╗ ██╗   ██╗███╗   ██╗      ██████╗ ██╗████████╗         ┃
┃    ██╔══██╗██║   ██║████╗  ██║     ██╔════╝ ██║╚══██╔══╝         ┃
┃    ██████╔╝██║   ██║██╔██╗ ██║     ██║  ███╗██║   ██║            ┃
┃    ██╔══██╗██║   ██║██║╚██╗██║     ██║   ██║██║   ██║            ┃
┃    ██║  ██║╚██████╔╝██║ ╚████║     ╚██████╔╝██║   ██║            ┃
┃    ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝      ╚═════╝ ╚═╝   ╚═╝            ┃
┃                                                                    ┃
┃              ⚡ 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
🔐 PRO Feature Gating Tiered access (FREE/PRO) with usage limits and config commands
🤖 Multi-Provider AI Support for Local, OpenAI, Anthropic, Google, Grok providers

📦 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

### Set your PRO API key
```bash
run-git config set-api-key rg_your_key_here

Use a specific AI provider (e.g., Google Gemini)

RUN_GIT_AI_PROVIDER=google GOOGLE_API_KEY=your_google_key run-git commit-ai

---

## 📖 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](https://www.conventionalcommits.org/) 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!

```bash
# 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

About

gitpush is a lightweight Python CLI tool designed to simplify and automate common Git workflows. It allows developers to quickly stage, commit, and push code using a single command, reducing repetitive Git commands and improving development productivity.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages