Git 2.5增加了工作樹、改進了三角工作流、性能等諸多方面

jopen 10年前發布 | 30K 次閱讀 Git


Git2.5是一個重要的功能版本,其中 包括 了worktrees、改進過的triangular workflows、更好的性能,以及無數的改進和修復。

工作樹(Worktrees)

工作樹是一個新的實驗性功能,使開發者可以在同一Git倉庫中,創建額外的工作樹(working trees)。這一功能旨在讓開發者易于在兩個分支上同時工作。在老的Git版本中,為此只能切換分支,因為同一時間只能使用一個分支;或者創建一份本地的副本,但為了保持它們的一致性,通常需要額外的工作。

Git提供了worktree命令,用于創建一個新的工作樹:

$ git worktree add -b hotfix ../hotfix origin/master

這將在指定的路徑下(比如../hotfix),創建一個新的目錄,從origin/master產生一個新的分支,并將代碼遷出到這個新目錄中。

在某些場景中,使用第二個工作樹會非常有用。比如, 運行當前版本的一個長時間的測試,同時工作在下一個版本的分支上;或者處理一個緊急修復而無需切換出當前分支。

工作樹會與主干倉庫鏈接起來,并且彼此互相感知。所以,不允許將同一分支遷出到兩個不同的工作樹中,以避免兩個工作樹無法同步。

三角工作流(Triangular workflows)

三角工作流通常用于協調團隊的代碼貢獻者之間的工作。其基本思想是,貢獻者擁有他們自己的fork,當準備好共享時,他們要創建一個pull請求,該請求最終會被合并到主干倉庫。

為了使三角工作流易于處理,Git2.5增加了新的符號@{push},表示當前分支要推送到遠程跟蹤分支,所處的當前值。這將被用于,比如,列出自上次推送以來,當前分支已經增加的全部提交:

$ git log @{push}

或者,可以這樣:

$ git log whizbang@{push}

使用任意分支。

性能

Git2.5改進了大工作樹和網絡文件系統的性能:

  • git update-index --untracked-cache 將啟用一個實驗性功能,使Git只檢查目錄的修改時間,以提高 git status 的性能。
  • git index-pack 會減少對packed-refs目錄的掃描次數,以提高網絡文件系統的性能。
  • 使用網絡文件系統,重用現有包對象,可以減少對 utime 的頻繁調用。

除了以上介紹的功能,Git2.5還改進了對Perforce倉庫的支持,包括使用git p4檢測文件類型、更好地處理分支,以及更多的改進和修復,可以在 發版說明 中了解這些。

查看英文原文: Git 2.5 Adds Worktrees, Improves Triangular Workflows, Performance, and More

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!