Git 2.40 发布,包括 git jump 工具的更新、cat-file 工具的增强以及提高 Windows 上响应速度
最近,开源 Git 项目发布了最新的 2.40 版本,带来了一些新的特性和缺陷修复。这个版本值得关注的特性包括git jump
工具的更新、cat-file
工具的增强以及在 Windows 上更快的响应。
GitHub 的软件工程师Taylor Blau详细介绍了 Git 2.40 的更新细节。git jump
是contrib目录中的一个可选工具,现在支持 Emacs 和 Vim。git jump
工具对 Git 命令进行了封装,比如git grep
,并将它们的结果输入的 Vim 的quickfix列表中。
如果你使用 Emacs 的话,git jump
可以通过M-x grepgit jump --stdout grep foo
命令来生成一个位置列表。该命令将会输出项目中所有与“foo”匹配的内容,使其更容易进行导航。Git jump 也适用于diff
和merge
。
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
你也许感兴趣的:
- 理解 git blame:一篇简介
- 【外评】为什么 Facebook 不使用 Git
- 【外评】Git 的故事:这次没那么有趣
- 【程序员搞笑图片】最刺激的话
- BitKeeper、Linux 和许可纠纷:Linus 如何在 14 天内写出 Git
- 【程序员搞笑图片】Git 音乐播放清单
- 您应该使用的现代 Git 命令和功能
- 在版本控制方面,我们能做得比 Git 更好吗?
- 告别SVN,Git成“独苗”:GitHub 在 13 年后宣布淘汰Subversion支持
- Google 和 Facebook 为什么不用 Git 管理源码?
你对本文的反应是: