Git 2.11于最近發(fā)布,這次發(fā)布中有超過650次代碼提交,對于SHA-1名稱處理、性能改進(jìn)等方面都有改善。
縮寫的SHA-1名稱是從160位(或40位十六進(jìn)制字符)簽名衍生而來的縮寫。開發(fā)者使用縮寫的4個(gè)字符,代替了原來一些不方便的方法,例如說原來40個(gè)字符的哈希。雖然使用起來方便但會(huì)導(dǎo)致名稱沖突。
比如使用以前的版本,git show命令會(huì)產(chǎn)生一條消息提醒這個(gè)縮寫的名稱含義模糊。
git show 454c
error: short SHA1 454c is ambiguous.
error: short SHA1 454c is ambiguous.
現(xiàn)在相同的命令也會(huì)產(chǎn)生。
git show 454c
error: short SHA1 454c is ambiguous
hint: The candidates are:
hint: 454cb6bd5 commit 2016-11-29 - Git 2.11
hint: 454ce7ef2 blob
可以通過手動(dòng)提供更多字符,或是通過git config命令來消除名稱中的歧義。
默認(rèn)情況下也會(huì)顯示較長的縮寫名稱。例如,以下的命令產(chǎn)生九個(gè)字符的縮寫名稱,而不是以前版本中顯示的七個(gè)字符的縮寫名稱。
git log --oneline
454cb6bd5 Git 2.11
Git 2.11對于Delta Chains和包文件中的對象查找做了較多性能提升。該版本中加速了補(bǔ)丁ID的計(jì)算速率,可以通過命令git rebase使用,并且含有一個(gè)過濾機(jī)制可以加速本地文件系統(tǒng)表示之間的轉(zhuǎn)換。
在博客上還列舉了其他地方的改進(jìn),包括:
由于對diff算法的改進(jìn),使得結(jié)果(--compaction-heuristic選項(xiàng))易于閱讀,通過改進(jìn)該選項(xiàng)在未來可能會(huì)成為默認(rèn)選項(xiàng)。
通過對git log的改進(jìn)實(shí)現(xiàn)對給定父級的排除。
contrib/中的證書助手,使用GNOME libsecret存儲Git密碼。
git diff命令將顯示子模塊的更改,作為兩個(gè)子模塊狀態(tài)之間的實(shí)際補(bǔ)丁。
git status給出一種更有助于機(jī)器可讀的輸出格式。
將Git的shell腳本轉(zhuǎn)換到C程序的整體性能也得到了提升。
想要了解更多Git 2.11的功能可以閱讀發(fā)行說明。
查看英文原文:Git 2.11 Improves SHA-1 Name Handling, Performance and More