Git 2.1 发布:新特性预览

  • Sergio De Simone
  • 赵震一

2014 年 8 月 28 日

话题:开源Git语言 & 开发架构

在 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

开源Git语言 & 开发架构