Git 2.1发布:新特性预览

jopen 10年前

在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
来自:http://www.infoq.com/cn/news/2014/08/git21-release-whats-new