Skip to content

vgomes-p/managit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ManaGit | Your Personal Git Manager 🚀

ManaGit | Your Personal Git Manager

ManaGit is a CLI tool designed to manage and automate workflows across multiple Git repositories from a single interface.

It provides both command-line options and an interactive shell to streamline repository maintenance, updates, and status tracking.

ManaGit working on commiting mode

Features

  • Interactive shell with a clean, colorful interface
  • pull
  • status
  • add
  • commit
  • push
  • branch
  • Some shell commands
  • Safe signal handling (blocks Ctrl+C inside the shell)

Installation

Install as package (sudo permission needed):

cd project
make install

Install as alias:

1. Prepare the enviroment

make create-env

2. Create the alias

2.1 - Open your shell rc file (example with bash)
nano ~/.bashrc
2.2 Pass the alias to your

remember to change "python3" with you python interpreter

alias py="python3"
alias managit="py ~/.managit/program/managit/src/run_managit.py"
2.3 Save the changes
CTRL^X
Y
ENTER
2.4 - Update
source ~/.bashrc

3. Call it

managit

This will not install managit as a package, so if you need to update it, you can go to repository with cd ~/.managitand run pull or create the alias managit-update (intructions in the end of the README).

Usage

Simply run:

managit

Or (if installed as package):

managit --start

Check the ManaGit preview:

Preview ManaGit

Commands inside the shell

  • pull — Pull latest changes from remote
  • add — Add the intructed files to track
  • commit — Check untracked files and run commit message creator
  • push — Push to remote (asks if you want --force)
  • branch — create a new branch copying the main
  • clear — Clear terminal screen
  • cd — Navigate into repositories (also works just entering the path)
  • ls — show files in the current path
  • exit — Exit managit

Upcoming features

  • New colors
  • deconflit — to fix conflit between local and remote repository
  • config — to configure git user data
  • restore — to restore local repository
  • clone — to clone repository
  • env_checker() — do now allow commit with .env in track

Project Structure

managit/project/
├─ 📁 program
│  ├─ 📁 managit
│  │  ├─ 📁 src
│  │  │  ├─ 🐍 __init__.py
│  │  │  ├─ 🐍 get_commit_info.py
│  │  │  ├─ 🐍 git_cmds.py
│  │  │  ├─ 🐍 main.py
│  │  │  ├─ 🐍 managitshell.py
│  │  │  ├─ 🐍 parser_git_status.py
│  │  │  ├─ 🐍 run_managit.py
│  │  │  ├─ 🐍 shell_cmds.py
│  │  │  └─ 🐍 shells_prompt.py
│  │  ├─ 📁 utils
│  │  │  ├─ 🐍 __init__.py
│  │  │  ├─ 🐍 clear.py
│  │  │  ├─ 🐍 colors.py
│  │  │  └─ 🐍 nbr.py
│  │  └─ 🐍 __init__.py
│  ├─ 📄 Makefile
│  ├─ 🐍 setup.py
│  └─ 🐍 setup.py
├─ 📁 src
│  └─ 🖼️ *.png
├─ ⚙️ .gitignore
├─ 📄 LICENSE
├─ 📝 PREVIEW.md
└─ 📝 README.md

Tech Stack

Python 3.6+ setuptools for packaging subprocess for Git integration Custom colored terminal output

License

This project is licensed under the MIT License — see the LICENSE file for details.

Author

Made by Vinny (@vgomes-p)

Happy coding!

Feel free to open issues or submit PRs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages