An open API service indexing awesome lists of open source software.

https://github.com/nottherealwallyx/gitblend

Python CLI with Git utilities
https://github.com/nottherealwallyx/gitblend

git python-cli

Last synced: 4 months ago
JSON representation

Python CLI with Git utilities

Awesome Lists containing this project

README

          

# GitBlend

[![Builds](https://github.com/NotTheRealWallyx/GitBlend/actions/workflows/check_test.yml/badge.svg)](https://github.com/NotTheRealWallyx/GitBlend/actions/workflows/ci_entrypoint.yml) [![CodeFactor](https://www.codefactor.io/repository/github/nottherealwallyx/gitblend/badge)](https://www.codefactor.io/repository/github/nottherealwallyx/gitblend) [![codecov](https://codecov.io/gh/NotTheRealWallyx/GitBlend/graph/badge.svg?token=SBBL3LT6AK)](https://codecov.io/gh/NotTheRealWallyx/GitBlend)

![GitBlend image](assets/images/gitblend_image.png)

GitBlend is a Git utility tool that combines Git and GitHub commands to streamline your workflow. It provides a simple CLI interface for managing Git operations, such as deleting tags both locally and remotely.

## Features

GitBlend is a versatile tool designed to simplify your Git and GitHub workflows. Here are some of the key features:

- **Tag Management**: Manage Git tags effortlessly with commands to create, delete, rename, and list tags. Whether you need to annotate a release, clean up old tags, or rename an existing tag, GitBlend provides a streamlined interface for these operations.

- Create annotated tags with custom messages.
- Push tags to remote repositories.
- Delete tags both locally and remotely.
- Rename tags while preserving their history.
- List all tags in your repository.

- **Repository Management**: Keep your repositories up-to-date with the `update-all` command. This command:

- Recursively finds all Git repositories on your computer.
- Updates repositories to the latest changes on the `main` branch.
- Optionally skips repositories with uncommitted changes or those not on the `main` branch.

- **Commit Management**: Simplify the process of creating commits with the `commit` command. This includes:

- Adding all files to the commit with the `--add` flag.
- Creating commits even when there are no changes using the `--allow-empty` flag.

- **Remote Management**: Easily manage your repository remotes with dedicated commands.

- View all configured Git remotes and their URLs with a single command.
- Change the URL of any remote (e.g., origin) directly from the CLI.

- **General Commands**: Access helpful utilities like:
- Displaying the current version of GitBlend.
- Viewing detailed help for all available commands.

## Installation

### Prerequisites

- Python 3.9 or higher
- [Poetry](https://python-poetry.org/) for dependency management
- [pipx](https://pypa.github.io/pipx/) for isolated Python package installations

### Steps

1. Clone the repository:

```bash
git clone https://github.com/mikelsanchez/GitBlend.git
cd GitBlend
```

2. Run the installation script:

```bash
./install.sh
```

This script will:

- Build the package using Poetry.
- Install the package using pipx.

## Usage

After installation, you can use the `gitblend` command from your terminal, followed by the desired command.

> **Note**: You can also use the shorthand `gib` instead of `gitblend` for all commands. For example:
>
> ```bash
> gib list-tags
> gib create-tag v1.2.0 --message "Release v1.2.0"
> ```

### Available Commands

#### Tag Management

- `gitblend list-tags`: List all Git tags in the current repository.
- `gitblend create-tag --message "" [--push]`: Create a new Git tag with an optional push to the remote repository.
- `gitblend delete-tag `: Delete a Git tag both locally and remotely.
- `gitblend rename-tag `: Rename an existing Git tag both locally and remotely.

#### Remote Management

- `gitblend show-remotes`: Show all Git remotes for the current repository.
- `gitblend set-remote-url `: Change the URL of a Git remote (e.g., origin).

#### Repository Management

- `gitblend update-all [--path ] [--only-clean]`: Update all Git repositories on your computer. Use `--only-clean` to skip repositories that are not on the `main` branch or have uncommitted changes.

#### Commit Management

- `gitblend commit --message "" [--add] [--sign]`: Create a new Git commit with a message. Use `--add` to stage all files before committing. Use `--sign` to sign the commit with your GPG key.
- `gitblend revert [--push]`: Revert the last specified number of commits. Use `--push` to push the changes to the remote repository after reverting.

#### General

- `gitblend --help`: Show help information for the GitBlend CLI.

## Uninstallation

To uninstall GitBlend, run the uninstallation script:

```bash
./uninstall.sh
```

This script will:

1. Uninstall the package using pipx.
1. Clean up any residual build files.

## License

This project is licensed under the GNU GPL v3. See the LICENSE file for details.

## Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.