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

如何获取以给定字符串开头的git提交哈希列表,git,hash,command,Git,Hash,Command,首先,我想向你们展示我正在处理的数据。我有一个提交哈希列表,例如: 008f1dcf984ede76c8e23c88c346fde38b6399e6 b665ceb8f06b009106eea99f296a24e338952545 ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81 e36475c7cdba3dcdd5a606a328b72fa8bed5cec5 df7aec65c7c2f5efb8921ed2df6f2ce2a88507a6 用户输入: b 生

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

008f1dcf984ede76c8e23c88c346fde38b6399e6
b665ceb8f06b009106eea99f296a24e338952545
ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81
e36475c7cdba3dcdd5a606a328b72fa8bed5cec5
df7aec65c7c2f5efb8921ed2df6f2ce2a88507a6
用户输入:

b
生成的哈希建议列表:

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

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

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

git日志--format=oneline | awk'/^b/'

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

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

我完全不了解Windows,因此其他人必须帮助您……

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

git日志--format=oneline | awk'/^b/'

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

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


我完全不了解Windows,因此其他人将不得不帮助您使用基于@jszakmeister提示的…

解决方案:

git rev-parse --disambiguate=4cdf| git cat-file --batch-check
或者如果少于四个字符:

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

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

git rev-parse --disambiguate=4cdf| git cat-file --batch-check
或者如果少于四个字符:

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

git rev parse--dismobiliate=
几乎可以实现您想要的功能。它的最小大小为4个字符,以防止在repo中列出所有对象,我认为您可能希望执行类似的操作。
git rev parse--dis歧义=
几乎实现了您想要的功能。它的最小大小为4个字符,以防止在repo中列出所有对象,我认为您可能希望执行类似的操作。谢谢您的帮助。我试图在Windows上找到类似的命令,但没有成功。最后,我安装了linux命令并将其与windows控制台集成。@ezpn您是否尝试过
|findstr^^4cdf
?谢谢您的帮助。我试图在Windows上找到类似的命令,但没有成功。最后,我安装了linux命令并将其与windows控制台集成。@ezpn您是否尝试过
|findstr^^4cdf