Name | pygitmate JSON |
Version |
0.1.4
JSON |
| download |
home_page | None |
Summary | A CLI tool to simplify Git workflows |
upload_time | 2024-12-18 17:31:22 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | None |
keywords |
agile
cli
developer-tools
git
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# pygitmate
[![PyPI version](https://badge.fury.io/py/pygitmate.svg)](https://badge.fury.io/py/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:
```bash
pip install pygitmate
```
Can be used via cli with alias `gmate` as well (`gmate new-branch`):
---
## 🛠️ Usage
### General Usage
```bash
pygitmate [COMMAND]
```
### Available Commands
#### 1. Create a New Branch
```bash
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
```bash
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
```bash
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
```bash
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
```bash
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
```bash
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](https://click.palletsprojects.com): Command-line interface library.
- [GitPython](https://gitpython.readthedocs.io): Python library for interacting with Git repositories.
- [Rich](https://rich.readthedocs.io): 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](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.
Raw data
{
"_id": null,
"home_page": null,
"name": "pygitmate",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "agile, cli, developer-tools, git",
"author": null,
"author_email": "Sarvesh Kumar Dwivedi <heysarvesh@pm.me>",
"download_url": "https://files.pythonhosted.org/packages/40/90/c6c1d03d1bece758e327c9e400ad89440609926012ca02e7bac12dd16f1e/pygitmate-0.1.4.tar.gz",
"platform": null,
"description": "# pygitmate\n\n[![PyPI version](https://badge.fury.io/py/pygitmate.svg)](https://badge.fury.io/py/pygitmate) \nA lightweight, experimental CLI tool to simplify Git workflows, crafted out of necessity for developers(especially me ;).\n\n---\n\n## \ud83d\ude80 Features\n\n`pygitmate` is a developer-focused Git CLI tool designed to streamline common Git operations while maintaining flexibility. \n\n- **Branch Management** \n - Create branches for features, hotfixes, enhancements, and more.\n - Automatically fetch and switch to the base branch before creating a new one.\n\n- **Commit with Standards** \n - Helps you write commits that follow standardized conventions.\n\n- **Merging Simplified** \n - Merge your current branch into another effortlessly, with options to stash changes dynamically.\n\n- **Interactive Workflows** \n - Fully interactive CLI with dynamic prompts for missing information.\n\n---\n\n## \u26a0\ufe0f Experimental Status\n\nThis (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.\n\n---\n\n## \ud83d\udce5 Installation\n\nYou can install `pygitmate` via pip:\n\n```bash\npip install pygitmate\n```\n\nCan be used via cli with alias `gmate` as well (`gmate new-branch`):\n\n---\n\n## \ud83d\udee0\ufe0f Usage\n\n### General Usage\n\n```bash\npygitmate [COMMAND]\n```\n\n### Available Commands\n\n#### 1. Create a New Branch\n\n```bash\npygitmate new-branch\n```\n\nInteractive flow for creating a branch:\n- Select the branch type: Feature, Hotfix, Enhancement, etc.\n- Specify a branch name.\n- Automatically fetches the latest base branch (default: `master`) before creating the new branch.\n\n#### 2. Commit Changes\n\n```bash\npygitmate commit\n```\n\nHelps you create standardized commit messages:\n- Select the commit type: `feat`, `fix`, `docs`, etc.\n- Provide a concise summary for the commit.\n\n#### 3. Merge Branches\n\n```bash\npygitmate merge [TARGET_BRANCH]\n```\n\nMerge the current branch into a target branch:\n- Automatically checks for uncommitted changes and stashes them if required.\n- Provides a list of recent branches to choose from if no target branch is specified (default: `master`).\n\n---\n\n## \ud83d\udca1 Examples\n\n### Creating a New Branch\n\n```bash\npygitmate new-branch\n```\n\nExample Interaction:\n```\nSelect the branch type:\n1. Feature\n2. Hotfix\n3. Enhancement\n4. Bugfix\nEnter Branch Type number [1/2/3/4]: 1\nEnter branch name (without spaces): feature_x\n```\n\n### Committing Changes\n\n```bash\npygitmate commit\n```\n\nExample Interaction:\n```\nSelect the type of commit:\n1. feat: A new feature\n2. fix: A bug fix\n3. docs: Documentation changes\nEnter Commit Type number [1/2/3]: 1\nEnter a concise summary of your changes: Added login functionality\n```\n\n### Merging Branches\n\n```bash\npygitmate merge\n```\n\nExample Interaction:\n```\nRecent branches:\n1. feature/login\n2. bugfix/ui-fix\n3. enhancement/readme-update\n...\n10. hotfix/payment-bug\n11. master (default)\n\nSelect the target branch by number or enter branch name [11]: 1\nWarning: Uncommitted changes detected in the working directory.\nDo you want to stash the changes? (yes/no) [yes]: yes\nStashing uncommitted changes...\nSwitching to target branch 'feature/login'...\nMerging branch 'main' into 'feature/login'...\nSuccessfully merged 'main' into 'feature/login'.\n```\n\n---\n\n## \ud83e\uddf0 Dependencies\n\n- [Click](https://click.palletsprojects.com): Command-line interface library.\n- [GitPython](https://gitpython.readthedocs.io): Python library for interacting with Git repositories.\n- [Rich](https://rich.readthedocs.io): Beautiful CLI formatting and styling.\n\n---\n\n## \ud83e\udd1d Contributions\n\nSince `pygitmate` is experimental, contributions, feature suggestions, and issue reports are highly welcome. Fork this repository and submit a pull request to improve the tool.\n\n---\n\n## \ud83c\udfd7\ufe0f Built With\n\n- **Python 3.11+**\n- **Some Love**\n\n---\n\n## \ud83d\udcdc License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## \u26a1 Acknowledgments\n\n`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.\n",
"bugtrack_url": null,
"license": null,
"summary": "A CLI tool to simplify Git workflows",
"version": "0.1.4",
"project_urls": {
"documentation": "https://pypi.org/project/pygitmate/",
"homepage": "https://github.com/sarvesh4396/pygitmate",
"repository": "https://github.com/sarvesh4396/pygitmate"
},
"split_keywords": [
"agile",
" cli",
" developer-tools",
" git"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "3df0eef2cc8d24165098f7fc717ca2ed422d58293a30cce3b1a49d8b787c7cba",
"md5": "e1307a51beeee1d85b78c4f77d148b2a",
"sha256": "cecbbb41a43875ad6264e6d736477282bbb24aeb8f13c9b660100bbc81f047e8"
},
"downloads": -1,
"filename": "pygitmate-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e1307a51beeee1d85b78c4f77d148b2a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 7464,
"upload_time": "2024-12-18T17:31:20",
"upload_time_iso_8601": "2024-12-18T17:31:20.166075Z",
"url": "https://files.pythonhosted.org/packages/3d/f0/eef2cc8d24165098f7fc717ca2ed422d58293a30cce3b1a49d8b787c7cba/pygitmate-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4090c6c1d03d1bece758e327c9e400ad89440609926012ca02e7bac12dd16f1e",
"md5": "0c3063b71dec4b5f887dc909c3d49e24",
"sha256": "2d056a7bf6df1aae9bf3afb913d6ff2d30b6e914c6fb79eb8680f6cebc7dd9fb"
},
"downloads": -1,
"filename": "pygitmate-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "0c3063b71dec4b5f887dc909c3d49e24",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 12046,
"upload_time": "2024-12-18T17:31:22",
"upload_time_iso_8601": "2024-12-18T17:31:22.330905Z",
"url": "https://files.pythonhosted.org/packages/40/90/c6c1d03d1bece758e327c9e400ad89440609926012ca02e7bac12dd16f1e/pygitmate-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-18 17:31:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sarvesh4396",
"github_project": "pygitmate",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pygitmate"
}