近日發布的Git 2.8帶來了許多新特性、改進和Bug修復。其中,最值得注意的是子版本庫并行獲取、Git用戶身份處理方式改進以及更好的Windows支持。
子版本庫并行獲取允許一次獲取多個版本庫,旨在減少獲取版本庫及其所有相關子版本庫所需的時間。這可以通過使用新增的--jobs選項來實現,例如:
git fetch --recurse-submodules --jobs=4據Git團隊介紹,對于包含許多子版本庫的版本庫,這可以大大增加更新速度。當使用--recurse-submodules而不帶新增的--jobs選項時,Git會逐個獲取子版本庫。
對于希望針對不同的項目(比如工作項目和開源項目)使用不同的身份標識的開發人員而言,全局配置選項將是一個受他們所有人歡迎的新特性。當沒有使用配置選項user.name和 user.email顯式指定身份時,該特性會禁用Git推測提交者身份的默認行為。在這種情況下,Git默認推測提交者身份的行為可能會導致將錯誤的身份用于新版本庫。另一方面,設置新增選項user.useconfigonly,即
git config --global user.useconfigonly true將使Git在開發人員向新版本庫提交但沒有明確指定身份時發出警告,強制他們提供一個明確的身份用于那個版本庫訪問。
有一個相關的變化旨在讓用戶更容易了解特定設置定義的位置,是系統級,用戶級,還是版本庫級。實際上,開發人員現在可以使用:
git config --show-origin顯示特定設置的來源位置。
Git 2.8還有一個目標是改進它同Windows的集成,措施如下:
使用C重寫了許多Git命令,讓它們的運行速度更快; 從it-for-Windows分支合并了若干特定于Windows的更改; 可以識別CRLF及LF行結束符。此外,Git 2.8.0修復了一個整數溢出安全漏洞,該漏洞可能導致在克隆惡意版本庫時任意代碼的執行。對于以前的Git版本,包括2.4.11+、2.5.5+、2.6.6+、2.7.4+,也已經提供了補丁。
Git 2.8中其它有用的新新特性包括:
git ls-files --eol要查看Git 2.8的完整更新列表,請點擊這里。
查看英文原文:Git 2.8 Adds Improvements to Submodules, Identity Handling, and Windows Support