Git 2.40 发布,包括 git jump 工具的更新、cat-file 工具的增强以及提高 Windows 上响应速度

最近,开源 Git 项目发布了最新的 2.40 版本,带来了一些新的特性和缺陷修复。这个版本值得关注的特性包括git jump工具的更新、cat-file工具的增强以及在 Windows 上更快的响应。

GitHub 的软件工程师Taylor Blau详细介绍了 Git 2.40 的更新细节git jumpcontrib目录中的一个可选工具,现在支持 Emacs 和 Vim。git jump工具对 Git 命令进行了封装,比如git grep,并将它们的结果输入的 Vim 的quickfix列表中。

如果你使用 Emacs 的话,git jump可以通过M-x grepgit jump --stdout grep foo命令来生成一个位置列表。该命令将会输出项目中所有与“foo”匹配的内容,使其更容易进行导航。Git jump 也适用于diffmerge

Git 的cat-file工具常用于打印 Git 仓库中任意对象的内容。从 Git 2.38.0 版本开始,cat-file工具支持在打印提交的内容时,使用 Git 的mailmap规则。为了确定某个特定对象的大小,cat-file工具可以使用--batch-check-s选项。但是,以前版本的 Git 在使用cat-file工具时,如果在使用--use-mailmap选项的同时,组合使用了--batch-check-s选项,将会导致结果不正确。在 Git 2.40 中,这个问题得到了修正,现在--batch-check-s选项会正确报告对象的大小。

git check-attr命令能够用来确定给定的路径设置了哪些gitattributes。这些属性是由仓库中的一个或多个.gitattributes文件所定义和设置的。对于复杂的规则或多个.gitattributes文件,请按照如下形式使用check-attr git 命令:

$ git check-attr -a git.c git.c: diff: cpp git.c: whitespace: indent,trail,space

在此之前,check-attr需要有一个索引,这使得它在裸仓库中很难使用。裸仓库是一个以.git为后缀的目录,它没有任何版本控制文件的本地检出副本(在裸仓库中,所有通常存在于隐藏的“.git”子目录中的 Git 管理和控制文件都直接存在于“repository.git”目录中,而没有其他文件存在并被检出。——译者注)。在 Git 2.40 和更新的版本中,现在支持使用--source=选项来扫描.gitattributes,使其更易于在裸仓库中使用。

GitHub的推特账号发布了这些更新,这引起了推特上技术社区的关注。其中,有位推特用户Andrew转推了该公告,并这样引用到

“git jump 似乎相当有用! https://github.com/git/git/tree/v2.19.0/contrib/git-jump。”

Git 2.40 还包括一些功能增强,将 Git 旧的组成部分从 Perl 或 Shell 改写成现代 C 语言的等价方式。这使得 Git 命令在 Windows 等平台上运行得更快。现在,git bisect已经以原生内置程序的方式以 C 语言进行了实现,而传统实现git add --interactive已经废弃了。

在 2.40 版本中,Git 的 CI 基础设施也有一些改进。一些长期运行的 Windows 专有 CI 构建已被禁用,为 Git 开发人员带来了更快、更节省资源的 CI 运行方案。

原文链接:

Open Source Git Project Releases Version 2.40

本文文字及图片出自 InfoQ

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注