發布分佈式源代碼控制系統 Git 2.26

可用的 發布分散式原始碼控制系統 Git 2.26.0。 Git 是最受歡迎、可靠和高效能的版本控制系統之一,提供基於分支和合併的靈活的非線性開發工具。 為了確保歷史記錄的完整性和對追溯更改的抵抗力,在每次提交中都會使用整個先前歷史記錄的隱式哈希;還可以使用開發人員的數位簽名來驗證各個標籤和提交。

與先前版本相比,新版本包含 504 個變更,由 64 名開發人員參與準備,其中 12 名開發人員首次參與開發。 主要的 創新:

  • 預設已切換為 第二個版本 Git通訊協議,客戶端遠端連接Git伺服器時所使用的協定。 協定的第二個版本值得注意的是,它提供了在伺服器端過濾分支和標籤的能力,並向客戶端傳回縮短的連結清單。 以前,任何 pull 命令都會向客戶端發送整個存儲庫中的完整引用列表,即使客戶端僅更新一個分支或檢查其存儲庫副本是否是最新的。 另一個值得注意的創新是,隨著工具包中出現新功能,能夠為協議添加新功能。 客戶端程式碼仍然與舊協定相容,並且可以繼續與新舊伺服器一起工作,如果伺服器不支援第二個版本,則自動回退到第一個版本。
  • 「git config」指令中新增了「-show-scope」選項,可以更輕鬆地識別定義某些設定的位置。 Git 可讓您在不同位置定義設定:在儲存庫 (.git/info/config) 中、在使用者目錄 (~/.gitconfig) 中、在系統範圍的設定檔 (/etc/gitconfig) 中以及透過命令列選項和環境變數。 執行“git config”時,很難理解所需設定的確切定義位置。 為了解決這個問題,可以使用“--show-origin”選項,但它只顯示定義該設定的文件的路徑,如果您打算編輯該文件,這很有用,但如果您想編輯該文件,則沒有幫助。需要透過「git config」使用選項「--system」、「--global」或「-local」更改值。 新選項「--show-scope」顯示變數定義上下文,可以與-show-origin結合使用:

    $ git --list --show-scope --show-origin
    全域檔案:/home/user/.gitconfig diff.interhunkcontext=1
    全域檔案:/home/user/.gitconfig push.default=current
    [...]本機檔案:.git/configbranch.master.remote=origin
    本機檔案:.git/configbranch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    全域 diff.statgraphwidth 35
    局部差異顏色移動平原

    $ git config --global --unset diff.statgraphwidth

  • 在綁定設定中 證書 允許在 URL 中使用掩碼。 Git 中的任何 HTTP 設定和憑證都可以針對所有連線(http.extraHeader、credential.helper)和基於 URL 的連線(credential.https://example.com.helper、credential.https://example. com. helper)。 到目前為止,僅允許在 HTTP 設定中使用 *.example.com 等通配符,但憑證綁定不支援使用通配符。 在 Git 2.26 中,這些差異被消除,例如,要將使用者名稱綁定到您現在可以指定的所有子網域:

    [憑證「https://*.example.com」]

    使用者名稱= ttaylorr

  • 對部分克隆(部分克隆)的實驗支援的擴展仍在繼續,允許您僅傳輸部分資料並使用存儲庫的不完整副本。 新版本添加了一個新命令“git稀疏-checkout add”,它允許您添加單獨的目錄以將“checkout”操作僅應用於工作樹的一部分,而不是通過命令“git”一次性列出所有此類目錄稀疏結帳集」(可以一一新增目錄,無需每次重新指定整個清單)。
    例如,要複製 git/git 儲存庫而不提交 blob,將簽出限制為僅工作副本的根目錄,並單獨標記「t」和「Documentation」目錄的簽出,您可以指定:

    $ git clone --filter=blob:none --sparse [電子郵件保護]:git/git.git

    $ cd git
    $ git稀疏結帳初始化--cone

    $ git稀疏結帳新增t
    ....
    $ git稀疏結帳新增文檔
    ....
    $ git稀疏結帳列表
    查看更多
    t

  • 用於搜尋儲存庫目前內容和歷史修訂的「git grep」命令的效能已顯著提高。 為了加快搜尋速度,可以使用多個執行緒(“git grep –threads”)掃描工作樹的內容,但歷史修訂中的搜尋是單執行緒的。 現在,透過實現從物件儲存並行讀取操作的能力,此限制已被消除。 預設情況下,執行緒數設定為等於 CPU 核心數,在大多數情況下,現在不需要明確設定「-threads」選項。
  • 新增了對「git worktree」命令的子命令、路徑、連結和其他參數的自動完成輸入的支持,這允許您使用儲存庫的多個工作副本。
  • 新增了對具有 ANSI 轉義序列的亮色的支援。 例如,在反白顯示顏色「git config –color」或「git diff –color-moved」的設定中,您可以透過「--format」選項指定「%C(brightblue)」為亮藍色。
  • 新增了新版本的腳本 fsmonitor-watchman,提供與機制的集成 臉書守望者 加快文件更改和新文件出現的追蹤。 更新後需要git 更換 掛鉤在儲存庫中。
  • 添加了優化以加快使用點陣圖時的部分克隆速度
    (點陣圖機制)以避免在過濾輸出時對所有物件進行完整搜尋。 現在執行部分克隆期間檢查 blob(—filter=blob:none 和 —filter=blob:limit=n)
    明顯更快。 GitHub 宣布了包含這些優化的補丁以及對部分克隆的實驗性支援。

  • 「git rebase」指令已移至不同的後端,使用預設的「merge」機制(以前用於「rebase -i」)而不是「patch+apply」。 後端在一些小方面有所不同,例如,在解決衝突後繼續執行操作(git rebase --Continue)後,新後端提供編輯提交訊息的功能,而舊後端僅使用舊訊息。 若要恢復到舊的行為,您可以使用「--apply」選項或將「rebase.backend」設定變數設為「apply」。
  • 透過 .netrc 指定的身份驗證參數的處理程序範例已簡化為適合開箱即用的形式。
  • 新增了 gpg.minTrustLevel 設定來設定執行數位簽章驗證的各種元素的最低信任等級。
  • 為「git rm」和「git stash」新增了「--pathspec-from-file」選項。
  • 測試套件的改進仍在繼續,為過渡到 SHA-2 雜湊演算法而不是 SHA-1 做準備。

來源: opennet.ru

添加評論