在2.6版本发布两个月之后,Git 2.7发布。该版本带来了许多新特性以及性能的提升。
本文选取了Git 2.7带来的主要变化:
-
git remote
支持get-url
子命令,可以显示指定远端的URL。 -
git rebase
新增了一个命令行选项--no-autostash
,可以覆盖配置变量rebase.autostash
。 -
git worktree
支持list
子命令,可以显示代码库的工作树及相关的分支。工作树是Git
2.5初次引入的一个特性,旨在使在同一个代码库的多个分支上工作更简单。 -
git
在并发用于多个工作树时也可以很好地工作了。此外,该命令现在支持
bisectold
和new
子命令,与之前的bad
和good
子命令相比,不那么令用户迷惑了。bisect
在查找那些产生了不良影响而又难以确定的状态变化时非常有用。它使开发人员可以标识good/old
提交以及bad/new
提交,这样,就可以对那些提交进行二叉搜索,查找造成破坏的提交。 -
git
支持一个新的配置选项
submodulepush.recurseSubmodules
,帮助开发人员将变更推送到主模块,而不需要提前推送修改过的子模块。使用命令行选项--recurse-submodules=on-demand
也可以获得同样的效果,但新增的push.recurseSubmodules
选项将此设为默认行为。 -
git
支持一个新的配置选项
stashstash.showPatch
,使它总是显示实际的修改,而不是受影响的文件的路径列表。在Git
2.6中,这一动作可以通过在命令行中使用-p
标识实现。 - 在性能方面,Git 2.7使用C重写了
git submodule
。
Git 2.7还包含许多其他的变更,其中包括800多个提交。感兴趣的读者可以从发布说明中查看完整的列表。