2

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

008f1dcf984ede76c8e23c88c346fde38b6399e6
b665ceb8f06b009106eea99f296a24e338952545
ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81
e36475c7cdba3dcdd5a606a328b72fa8bed5cec5
df7aec65c7c2f5efb8921ed2df6f2ce2a88507a6

用户输入:

b

生成的哈希建议列表:

b665ceb8f06b009106eea99f296a24e338952545
ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81

首先,当用户只输入几个字符时,我必须检查有多少哈希以给定模式开头。如果模式只处理 10 个哈希,我想向他展示建议的提交哈希列表。

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

4

2 回答 2

3

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

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

另一个示例(查找从 开始的哈希4cdf,并仅输出其中的数量):

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

我对 Windows 完全一无所知,所以其他人必须帮助你...

于 2013-08-26T15:16:03.563 回答
1

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

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

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

git rev-list --all | grep '^b'
于 2014-12-10T12:15:48.230 回答