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
You can overwrite the existing commit that has other commits on top of it. To do this, use the --commit
option:
hashcommit --hash <desired_hash_part> --overwrite --commit <commit_hash>
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 py312 --
To run tox tests under docker (not using your git):
docker compose up
To set up an environment with hashcommit
installed and a git repository initialized in the /repo
directory, use Docker Compose:
docker compose run --rm --workdir /repo test bash
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for hashcommit-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f39dcd18903f974da3a8da00ee85e3cbc680aaaae0864dd98418f12e21bc725f |
|
MD5 | 0cddd3b7391b574ed6d87d9139b7a2d9 |
|
BLAKE2b-256 | f2ecee5afcdbe32bf0b9ef6729472a60d29c163d980adf5687932c705cca8ec1 |