2013-08-26 72 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' 
相關問題