2013-08-26 34 views
2

首先,我想向您展示我正在处理的数据。我犯散列的列表,例如:如何获得以给定字符串开头的git提交哈希列表

008f1dcf984ede76c8e23c88c346fde38b6399e6 
b665ceb8f06b009106eea99f296a24e338952545 
ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81 
e36475c7cdba3dcdd5a606a328b72fa8bed5cec5 
df7aec65c7c2f5efb8921ed2df6f2ce2a88507a6 

用户输入:

b 

生成的哈希建议列表:

b665ceb8f06b009106eea99f296a24e338952545 
ba90664a9316dedd7d2fa7ee0c7c01548f9c2b81 

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

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

+1

'git的REV-解析--disambiguate ='几乎是你想要的。它具有4个字符的最小尺寸以防止列出回购库中的所有对象,我想你可能想要做类似的事情。 – jszakmeister

回答

3

如果“B”是你在UNIX中寻找模式我会做它像这样:

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

又如(寻找来自4cdf开始哈希值,并且只输出号那些):

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

我绝对没有关于Windows知识,别人就必须帮助你与...

+2

感谢您的帮助。我试图在Windows上找到类似的命令,但没有运气。最后,我安装了[Cygwin](http://www.cygwin.com/)并将Linux命令与Windows控制台集成。 – ezpn

+0

@ezpn你试过'| findstr ^^ 4cdf'? – Matthieu

1

解决方案基础上,@jszakmeister提示:

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

或者,如果您有少于四个大字:

git rev-list --all | grep '^b' 
相关问题