pygitmate
A lightweight, experimental CLI tool to simplify Git workflows, crafted out of necessity for developers(especially me ;).
🚀 Features
pygitmate is a developer-focused Git CLI tool designed to streamline common Git operations while maintaining flexibility.
-
Branch Management
- Create branches for features, hotfixes, enhancements, and more.
- Automatically fetch and switch to the base branch before creating a new one.
-
Commit with Standards
- Helps you write commits that follow standardized conventions.
-
Merging Simplified
- Merge your current branch into another effortlessly, with options to stash changes dynamically.
-
Interactive Workflows
- Fully interactive CLI with dynamic prompts for missing information.
⚠️ Experimental Status
This (new) tool is in its experimental phase and was built out of the need for a personal Git helper. Use at your own discretion, and report issues or suggest features if you find it helpful.
📥 Installation
You can install pygitmate via pip:
pip install pygitmate
Can be used via cli with alias gmate as well (gmate new-branch):
🛠️ Usage
General Usage
pygitmate [COMMAND]
Available Commands
1. Create a New Branch
pygitmate new-branch
Interactive flow for creating a branch:
- Select the branch type: Feature, Hotfix, Enhancement, etc.
- Specify a branch name.
- Automatically fetches the latest base branch (default:
master) before creating the new branch.
2. Commit Changes
pygitmate commit
Helps you create standardized commit messages:
- Select the commit type:
feat,fix,docs, etc. - Provide a concise summary for the commit.
3. Merge Branches
pygitmate merge [TARGET_BRANCH]
Merge the current branch into a target branch:
- Automatically checks for uncommitted changes and stashes them if required.
- Provides a list of recent branches to choose from if no target branch is specified (default:
master).
💡 Examples
Creating a New Branch
pygitmate new-branch
Example Interaction:
Select the branch type:
1. Feature
2. Hotfix
3. Enhancement
4. Bugfix
Enter Branch Type number [1/2/3/4]: 1
Enter branch name (without spaces): feature_x
Committing Changes
pygitmate commit
Example Interaction:
Select the type of commit:
1. feat: A new feature
2. fix: A bug fix
3. docs: Documentation changes
Enter Commit Type number [1/2/3]: 1
Enter a concise summary of your changes: Added login functionality
Merging Branches
pygitmate merge
Example Interaction:
Recent branches:
1. feature/login
2. bugfix/ui-fix
3. enhancement/readme-update
...
10. hotfix/payment-bug
11. master (default)
Select the target branch by number or enter branch name [11]: 1
Warning: Uncommitted changes detected in the working directory.
Do you want to stash the changes? (yes/no) [yes]: yes
Stashing uncommitted changes...
Switching to target branch 'feature/login'...
Merging branch 'main' into 'feature/login'...
Successfully merged 'main' into 'feature/login'.
🧰 Dependencies
- Click: Command-line interface library.
- GitPython: Python library for interacting with Git repositories.
- Rich: Beautiful CLI formatting and styling.
🤝 Contributions
Since pygitmate is experimental, contributions, feature suggestions, and issue reports are highly welcome. Fork this repository and submit a pull request to improve the tool.
🏗️ Built With
- Python 3.11+
- Some Love
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
⚡ Acknowledgments
pygitmate was created out of a need for simplifying repetitive Git tasks and improving efficiency in workflows. Inspired by the challenges faced during development, this tool is a handy companion for developers who work extensively with Git.
Metadata
Release files for pygitmate 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pygitmate-0.1.4.tar.gz | 12.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pygitmate-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.5 kB
Release files / pygitmate-0.1.4.tar.gz
| Download URL | pygitmate-0.1.4.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d056a7bf6df1aae9bf3afb913d6ff2d30b6e914c6fb79eb8680f6cebc7dd9fb
|
|
BLAKE2b-256 checksum How to use checksums |
4090c6c1d03d1bece758e327c9e400ad89440609926012ca02e7bac12dd16f1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.10
|
Release files / pygitmate-0.1.4-py3-none-any.whl
| Download URL | pygitmate-0.1.4-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cecbbb41a43875ad6264e6d736477282bbb24aeb8f13c9b660100bbc81f047e8
|
|
BLAKE2b-256 checksum How to use checksums |
3df0eef2cc8d24165098f7fc717ca2ed422d58293a30cce3b1a49d8b787c7cba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.10
|