Git在版本2.13中继续改进了安全性和UI
Git的最新版本做了很多改進,旨在改進其用戶界面,同時也修復了兩個重要的漏洞。
\\眾所周知,Git用于唯一識別對象的SHA-1哈希算法最近被證明容易受到碰撞攻擊。雖然Git團隊準備過渡到一個新的更安全的散列算法,但它們已經實現了一種算法,這種算法可以檢測和拒絕任何創建時帶有制造沖突目的的對象。這應該會有效地減輕被攻擊的風險。
\\在安全性方面,Git 2.13版本還修復了一個漏洞,這個漏洞會影響到所有使用git shell的Git托管服務器,它使攻擊者可以在遠程服務器上靜默運行shell命令。而該版本提供了一種更嚴格的方式,通過SSH來使用Git的push/pull命令和安裝在git-shell-commands目錄中的自定義命令。
\\同時,Git 2.13版本在UI方面也做了很多改進。尤其對于為不同項目工作的所有開發人員來說,最有用的功能是通過條件配置來處理多個身份的能力。簡而言之,條件配置提供了一種基于一組條件來包含Git配置文件的方法。例如,您可以在?/ .gitconfig文件中使用以下指令,以根據存儲庫所在目錄的路徑自定義Git配置:
\\[includeIf \"gitdir:~/work/\"]\ path = .gitconfig-work\[includeIf \"gitdir:~/play/\"]\ path = .gitconfig-play\\\具體來說,這可以用來在.gitconfig-work和.gitconfig-play中定義不同的用戶和電子郵件。
\\在Git 2.13版本中,幾乎所有開發人員都會使用到的功能是在Git命令中使用路徑規則,即pathspecs。 例如,如果要在存儲庫中對給定類型的所有文件執行grep,可以寫:
\\git grep my_pattern '*.c'\\\現在,您還可以使用否定pathspecs(從命令中排除特定的pathspec)以及使用屬性的pathspec(在pathspec定義中包括這些屬性)。 例如:
\\git grep text_to_search -- src ':(exclude)*.c'\\\其他顯著地改進包括:
\\- \
git branch、git tag和git for-each-ref現在支持的--no-contains選項,可用于選擇不包含指定提交的標簽或分支,例如:
\\git tag -l --no-contains cf5c725 'v[0-9]*' | sort | tail -n 10
\\已有--contains選項時--no-contains選項會被忽略,例如查找在兩個標簽之間創建的分支:
\\git branch --contains v2.8.0 --no-contains v2.10.0
\ \\ - \
git stash支持使用pathspecs來暫存當前正在進行的工作,從而允許更多地控制要被暫存的內容。
\ \\ - 子模塊現在有自己獨立的命令,包括checkout、grep和ls-files。 這意味著子模塊支持遞歸遍歷。 另外,git status --short可以查詢出有關子模塊的更多狀態信息。\
您可以閱讀完整的發版說明,詳細了解Git 2.13版本中的新功能。
\\查看英文原文:Git Continues to Improve Security and UI in Version 2.13
\\感謝冬雨對本文的審校。
\給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ,@丁曉昀),微信(微信號:InfoQChina)關注我們。
總結
以上是生活随笔為你收集整理的Git在版本2.13中继续改进了安全性和UI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js温故而知新11(AJAX)——学习廖
- 下一篇: context:annotation-c