pygitmate


Namepygitmate JSON
Version 0.1.4 PyPI version JSON
download
home_pageNone
SummaryA CLI tool to simplify Git workflows
upload_time2024-12-18 17:31:22
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
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"
}
        
Elapsed time: 0.46961s