Skip to main content

A tool to generate a Git commit with a specific hash part.

Project description

hashcommit

A tool to generate a Git commit with a specific hash part.

Prerequisites

Ensure you have Git installed on your system.

Installation

You can install the package using pip:

pip install hashcommit

Usage

Creating a New Commit

To create a new commit with a specific hash part:

hashcommit --hash <desired_hash_part> --message "<commit_message>"

Overwriting the Last Commit

To overwrite the last commit with a specific hash part:

hashcommit --hash <desired_hash_part> --message "<commit_message>" --overwrite

Match Type

You can also specify if the hash must begin with, contain, or end with the desired string using the --match-type option. The default is to match the beginning of the hash:

hashcommit --hash <desired_hash_part> --message "<commit_message>" --match-type <begin|contain|end>

Example Usage

To find and use a specific commit hash:

hashcommit --hash fff --match-type contain --message "foobar" ; git log -1 | cat

Example output:

Found matching commit hash: 93fffe4756192c250a7234c7c5fd81752c747091
commit 93fffe4756192c250a7234c7c5fd81752c747091
Author: Your Name <your-email@domain.com>
Date:   Thu May 23 17:06:24 2024 +0000

    foobar

Author Preservation

By default, the author is preserved when overwriting. To overwrite the author, use the --no-preserve-author option:

hashcommit --hash <desired_hash_part> --overwrite --no-preserve-author

Overwriting Commits in the Past

Overwriting a particular commit in the past will be implemented in the future.

Development

To develop or contribute to this project, clone the repository and install the dependencies:

git clone https://github.com/wozniakpl/hashcommit.git
cd hashcommit
pip install -e .

Running Locally

You can run tests locally using tox or act:

# Using tox
tox

# Using act
act

You can use the following command for simplicity of development. It formats the code, runs the checks, and the tests on one Python version:

tox -e format && tox -e checks && tox -e py311 --

To set up an environment with hashcommit installed and a git repository initialized in the /repo directory, use Docker Compose:

docker compose run --rm test bash

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hashcommit-0.1.2.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

hashcommit-0.1.2-py3-none-any.whl (7.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page