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.
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 not preserved and gets overwritten when overwriting a commit. This feature will be implemented in the future.
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 tests 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.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f03c8f29b92c74d69752ba926523388f589ed66228cff6467c1cb10b7a805020 |
|
MD5 | f82a12bf3ba99eaf3bfeec4139491d70 |
|
BLAKE2b-256 | 22e31f951efcf58af9d48b4bd40516ccc5243ad256e5d9f765c7d2e293ccf1d0 |