如何获取以给定字符串开头的git commit哈希列表

时间:2013-08-26 13:58:05

标签: git hash command

首先,我想向您展示我正在处理的数据。我有一个提交哈希列表,例如:

008f1dcf984ede76c8e23c88c346fde38b6399e6
b665ceb8f06b009106eea99f296a24e338952545
ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81
e36475c7cdba3dcdd5a606a328b72fa8bed5cec5
df7aec65c7c2f5efb8921ed2df6f2ce2a88507a6

用户输入:

b

生成的哈希建议列表:

b665ceb8f06b009106eea99f296a24e338952545
ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81

首先,当用户输入几个字符时,我必须检查有多少哈希从给定模式开始。如果模式匹配只有10个哈希值,我想向他显示一个建议的提交哈希值列表。

我正在寻找一个git命令,它将帮助我计算以给定的字符串和git命令开头的哈希来获取此列表。给定的命令应该在Windows和Unix系统下工作(我可能会为每个操作系统使用不同的命令)。

2 个答案:

答案 0 :(得分:3)

如果“b”是你在unix中寻找的模式,我会这样做:

git log --format=oneline | awk '/^b/'

另一个例子(从4cdf开始查找哈希值,并仅输出数字):

git log --format=oneline | awk '/^4cdf/' | wc -l

我完全不了解Windows,所以其他人必须帮助你......

答案 1 :(得分:1)

基于@jszakmeister提示的解决方案:

git rev-parse --disambiguate=4cdf| git cat-file --batch-check

或者如果您的字符少于四个:

git rev-list --all | grep '^b'