Git 2.1釋出:新特性預覽

infoq發表於2014-08-29

  在Git 2.0釋出兩個半月之後,Git又釋出了新的版本2.1版。雖然只是小版本號的更新,但是這一版的新特性和改進的內容的列表卻很長。

  可以從git倉庫找到完整的釋出日誌,該日誌提供了關於Git 2.1版更多的細節。下面我們挑選了一些Git 2.1版的新特性來進行一下簡單的介紹。

  • 更出色的bash補全功能

    Bash補全功能得到了進一步的擴充套件,從而可以“更好地處理那些為複雜的命令序列而定義的別名”。換句話說,如果你為一組命令序列定義了一個別名,該別名對應的命令序列是將一個git命令的結果通過管道輸入到例如像grep、sort或其他任何的命令列程式中,那麼自動補全功能會像處理原生的git命令一樣將為該別名生成相同的選項。

  • 裝飾日誌的“auto”選項

    log.decorate 這一配置變數目前支援通過指定值auto,從而可以在輸出被髮送到tty的時候,自動啟用--decorate 選項。

  • 支援在合併時採用vimdiff3

    git mergetool命令目前支援使用vimdiff3作為背後實現

  • 在git-grep中支援全路徑名輸出

    新增了一個--full-name 選項,允許以全路徑名的展現形式獲取結果,替代了根據當前目錄展示相對路徑的方式。需要重點關注的是該行為現在已是預設配置:“git grep 現在對grep.fullname 配置變數強加了‐‐full-name選項,從而使該選項成為了預設配置”。這會對那些不期望該種新行為的指令碼化使用者造成損害。

  • 標籤排序

    Git-tag現在支援tag.sort配置,“當沒有指定‐‐sort= 選項的時候,將會按照預設的順序進行排序。” Tim Pettersen在Atlassian Blog中提供了一個關於該新特性如何使用的很好的例子,他考慮到標籤中的版本數字從而建議採用下面的方式作為預設排序:

    $ git config --global tag.sort version:refname

    通過設定上述的預設選項,使用git tag 將會對版本數字進行正確地排序,而無需同時指定任何特定的排序選項來覆蓋它原有預設的按字母排序的方式。

  新版的Git同樣也包含了數個針對效能提升和大量bug修復的變更。更多的詳情可以檢視完整的釋出日誌。上面提到的Tim Pettersen 的文章也非常值得一讀,因為它囊括了作者關於“新版中讓身在Atlassian的我們興奮的幾個方面”的一些想法,並提供了更加豐富的示例。

  英文原文:Git 2.1 Released: What's New 譯文:infoq

相關文章