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 2.13版本中的新功能。
\\檢視英文原文:git continues to improve security and ui in version 2.13
\\ 感謝冬雨對本文的審校。
\
Git在版本2 13中繼續改進了安全性和UI
git的最新版本做了很多改進,旨在改進其使用者介面,同時也修復了兩個重要的漏洞。u0026 xd n u0026 xd n 眾所周知,git用於唯一識別物件的sha 1雜湊演算法最近被證明容易受到碰撞攻擊。雖然git團隊準備過渡到乙個新的更安全的雜湊演算法,但它們已經實現了一種演算法,這種演算法可以...
在 Git 中 Checkout 歷史版本
昨天寫 的時候,誤刪了乙個檔案。今天發現的時候,commit 已經 push 到版本庫了。本想用git reset回退版本,找回檔案後重新提交。但是想起 git 是乙個版本控制系統哎,直接從版本庫里 checkout 出某個檔案的歷史版本不就好了?想法挺好,但是很久沒用這個功能,自己已經不記得具體的...
在 Git 中 Checkout 歷史版本
昨天寫 的時候,誤刪了乙個檔案。今天發現的時候,commit 已經 push 到版本庫了。本想用git reset回退版本,找回檔案後重新提交。但是想起 git 是乙個版本控制系統哎,直接從版本庫里 checkout 出某個檔案的歷史版本不就好了?想法挺好,但是很久沒用這個功能,自己已經不記得具體的...