2021-05-12 14:32:11
Git 2.5增加了工作樹、改進了三角工作流、效能等諸多方面
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
GitHub 教學系列文章:
GitHub 使用教學圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm
Git 標籤管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm
Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm
Git 遠端倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm
Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm
Git 伺服器搭建與用戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm
Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm
分享實用的GitHub 使用教學 http://www.linuxidc.com/Linux/2014-04/100556.htm
Ubuntu下Git伺服器的搭建與使用指南 http://www.linuxidc.com/Linux/2015-07/120617.htm
相關文章