--abbrev-commit
標誌可與git log
和git rev-list
一起使用,以顯示部分前綴而不是提交對象的全部40個字符的SHA-1哈希值。按照Pro Git book,在我的回購中,最長的哈希前綴需要多長時間才能防止重疊?
它默認使用七個字符,但使他們更長,如果有必要保持SHA-1歧義[...]
此外,短的SHA至少4-字符長。仍然根據Pro Git書,
一般來說,8到10個字符綽綽有餘在項目中是唯一的。
作爲一個例子,Linux內核是一個超過450k提交和360萬個對象的相當大的項目,沒有兩個對象的SHA-1重疊超過前11個字符。
由於爲防止提交對象的所有前綴哈希值(在Linux內核的情況下爲11)所需的最長前綴的長度是回購規模的粗略指標,所以我想以編程方式確定我自己的本地存儲庫中的相應數量。我怎樣才能做到這一點?
你的意思是http://stackoverflow.com/a/21015031/3691891? –
@ArkadiuszDrabczyk不完全。您的鏈接僅提供了一種方法,用於確定給定提交哈希的前綴可以多短以避免與其他哈希值重疊。我要求存儲庫中所有提交散列的數量最大。 – Jubobs
如果不檢查回購庫中的所有提交,您無法*嚴格*確定所需的前綴長度。原則上,回購可能只有兩個提交,其前39個字符相同。實際所需的長度可能隨着下一次提交而改變。 –