3 个版本
0.1.2 | 2024年3月26日 |
---|---|
0.1.1 | 2024年3月26日 |
0.1.0 | 2024年3月26日 |
在 #libgit2 中排名第 5
8KB
115 行
special-git-commit
用于生成具有指定前缀的提交哈希的命令行工具。
- 简单易读
- 使用 libgit2 API 而不是调用
git xxx
命令 - 使用多线程
安装
Cargo 安装
cargo install special-git-commit
从源码构建
git clone https://github.com/OmmyZhang/special-git-commit-hash.git
cd special-git-commit-hash
cargo build --release
从版本下载
适用于 Linux、Mac 和 Windows 的可执行文件。
用法
special-git-commit <target-prefix>
或
special-git-commit
它将使用目标前缀修正 HEAD 提交。如果没有提供前缀,则使用默认前缀 0000000
。
工作原理
让 git cat-file commit HEAD
的结果为 contents
。
$ git cat-file commit HEAD master
tree 66b5178f6feba85812818aeaca5a86b07cdd106f
parent 0000004a2eddb98c4b005362dd4fe37636633b3f
author Tdxdxoz <[email protected]> 1711436406 +0800
committer Tdxdxoz <[email protected]> 1711436919 +0800
update README
这个提交(HEAD)的哈希值是 sha128("commit {contents.len()}\0{content}")
。
commit 216\0tree 66b5178f6feba85812818aeaca5a86b07cdd106f
parent 0000004a2eddb98c4b005362dd4fe37636633b3f
author Tdxdxoz <tdxdxoz@gmail.com> 1711436406 +0800
committer Tdxdxoz <tdxdxoz@gmail.com> 1711436919 +0800
update README
将在提交者名称中添加前缀,并检查新的 sha128 结果是否匹配。
您可以...
使用它来
- 享受乐趣
- 帮助查找使用 git 提交哈希的工具的潜在漏洞
- 仅使用短哈希
- 错误地将提交哈希解释为整数而不是字符串(例如,在 YAML 中)
- ...
并且不要在生产中使用它
类似项目
依赖项
约9MB
约247K SLoC