[关闭]
@levinzhang 2023-04-16T02:53:08.000000Z 字数 1577 阅读 147

开源Git项目发布2.40版本

by

摘要:

最近,开源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命令:

  1. $ git check-attr -a git.c
  2. git.c: diff: cpp
  3. 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

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注