#git-commit #git #hash #command-line #command-line-tool #prefixes #libgit2

app special-git-commit

用于生成具有指定前缀的提交哈希的命令行工具

3 个版本

0.1.2 2024年3月26日
0.1.1 2024年3月26日
0.1.0 2024年3月26日

#libgit2 中排名第 5

WTFPL 许可证

8KB
115

special-git-commit

用于生成具有指定前缀的提交哈希的命令行工具。

  • 简单易读
  • 使用 libgit2 API 而不是调用 git xxx 命令
  • 使用多线程

安装

Cargo 安装 Crates.io 版本

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