最近 宣布發布新版本 分佈式源代碼控制系統 Git 2.38與上一版本相比,新版本接受了 699 處更改,由 92 位開發者參與編寫,其中 24 位為首次參與開發。
對於那些不熟悉Git的人,您應該知道 是最受歡迎的版本控制系統之一, 提供基於分叉和分叉合併的靈活非線性開發工具的可靠和高性能軟件。
為了確保歷史的完整性和對回溯更改的抵抗力,在每次提交中使用所有先前歷史的隱式哈希,還可以驗證各個標籤和提交的開發人員的數字簽名。
Git 2.38關鍵新功能
在介紹的這個新版本的 Git 2.38 中,強調了 包括標量實用程序 由微軟開發 用於管理大型存儲庫。 該實用程序最初是用 C# 編寫的,但修改後的 C 版本包含在 git 中。 新實用程序 與 git 命令的不同之處在於包含附加功能和設置 使用非常大的存儲庫時影響性能的默認值。
例如,當使用標量時,以下適用:
- 部分克隆用於處理存儲庫的不完整副本。
- 內置文件系統更改跟踪機制 (FSMonitor),無需列出整個工作目錄。
- 涵蓋不同文件包(多包)中對象的索引。
- 使用提交圖索引提交圖文件,用於優化對提交信息的訪問。
- 週期性的後台工作,在後台維護存儲庫的最佳結構,而不阻塞交互式會話(每小時一次,從遠程存儲庫獲取新對象並使用提交圖更新文件,以及打包的過程存儲庫每晚都會啟動)。
- 一種“sparseCheckoutCone”模式,用於限制部分克隆中的有效模式。
在這個新版本的 Git 2.38 中出現的另一個變化是 “git rebase”命令的“–update-refs”選項 更新與重新定位的分支相交的依賴分支,因此您不必手動簽出每個依賴分支來切換到所需的提交。
還強調了 位圖文件格式已經過優化,可用於大型存儲庫- 添加了一個可選的索引表,其中包含選定提交及其偏移量的列表。
除此之外,我們可以在命令中找到 “git merge-tree”實現了一種新模式 在其中 基於兩個特定的提交,用結果計算一棵樹 的合併,就好像這些提交的歷史被合併了一樣。
添加配置 "safe.barerepository" 控制是否不包含樹的存儲庫 工作的, 它們可以放在其他 git 存儲庫中。 當設置為“顯式”時,位於頂層目錄中的裸存儲庫將只能工作。 為了能夠將裸存儲庫放在子目錄中,必須使用值“all”。
其他變化 從這個新版本中脫穎而出:
- 在“git grep”命令中添加了“-m”(“--max-count”)選項,類似於 GNU 的同名 grep 選項,可以限制匹配結果的數量。
- “ls-files”命令實現了“--format”選項來自定義輸出字段(例如,您可以啟用對象名稱、模式等的輸出)。
- 在“git cat-file”中,當顯示對象的內容時,實現了考慮作者在郵件映射文件中指定的電子郵件鏈接的能力。
- “git rm”命令與部分索引兼容。
- 改進了“git mv AB”命令在將文件從具有“錐形”模式的部分索引的工作區移動到未應用此模式的外部區域時的行為。
終於 如果您有興趣了解更多信息,您可以查看詳細信息 在下面的鏈接中。