Git 2.22 新版本正式發布。 Git是最受歡迎、最可靠、效能最高的版本控制系統之一,同時也提供開發工具。
為了確保歷史記錄的完整性和對事後更改的抵抗力,所有先前歷史記錄的隱式哈希將用於每次提交,並且還可以驗證各個標籤和提交開發人員的數字簽名。
與先前的版本相比,新版本進行了 745 處更改,共有 74 位開發人員參與編寫,其中 18 位是第一次參與開發。
Git 2.22關鍵新功能
現在可以使用指令「git branch-show-current」來顯示目前使用的本機分支。
此外,自 1.18 版本起,提交集的新傳輸模式“ git rebase --rebase-merges ”可用,該模式取代了先前的選項“ --preserve-merges ”,現在被標記為過時。
為了在可移植分支中保留分支結構,可以使用「--preserve-merges」選項,該選項在互動模式下啟動(git rebase -i --preserve-merges)時,允許編輯提交歷史,但不能保證完全保留儲存庫結構。
後繼模式「--rebase-merges」可讓您保留可移植分支中變更的結構,同時提供一整套互動式操作,包括刪除、重新排列和重新命名提交。
例如,「--rebase-merges」允許將分離分支中的提交合併到較新的主分支,同時保持可移植分支中的分支結構,並對註釋進行一些更改以動態提交它們。
「 git rebase 」操作用於將一系列提交替換為新的基礎提交,例如,將正在開發某些新功能的單獨分支更改為主分支的當前狀態,包括在該分支之後添加的任何修復。
出色的後端支持
` git bisect` 的報告已更新,現在更易讀;同時,` git mergetool`現在也支援 Sublime Merge (` smerge` )作為後端。當儲存的索引檔案發生變更時,Git 會呼叫新的 ` post-index-change`鉤子,這有助於虛擬化工作樹的實作。
此外,「git difftool」現在也可以在儲存庫之外運行,並在檢測到 HEAD 和索引之間的差異時取消「 git checkout -m <other> 」。
由於打包索引有時會在克隆過程中花費很長時間,因此開發人員一直在為您提供進度條。
同時,由於新增了 ` switch`伺服器選項, ` git clone` 指令現在透過協定版本 2 進行通訊。此外,多項功能改進了程式碼補全,開發人員也對 trace2 追蹤工具進行了改進。
全新的 Trace2 追蹤機制提供了更靈活、更結構化的輸出格式。 Trace2允許收集運行遙測和效能數據,以便進行更詳細的分析和調試(使用者指定控制器;不會向外部發送任何數據)。
績效與發展
Git 內建的差異化機制已重寫,現在支援 ` git commit-tree`,` pack-redundant` API和 ` git multi-pack-index verify`在包含大量套件檔案的倉庫中運行速度更快。對於開發者而言,測試框架也已更新。
最近,` git stash`已用 C 語言實現,用於配合 ` git rebase`。 C語言實作經過更新,可以防止 Git 重複覆蓋同一個檔案。 `git diff`現在在收集 blob 資訊等特殊情況下運行速度也更快了。最後,`git clone` 也加快了連線速度。
還添加了顯示附加到提交的擴展“ git log”標籤時進行過濾的功能。