近日发布的Git 2.8 带来了许多新特性、改进和Bug 修复。其中,最值得注意的是子版本库并行获取、Git 用户身份处理方式改进以及更好的Windows 支持。
子版本库并行获取允许一次获取多个版本库,旨在减少获取版本库及其所有相关子版本库所需的时间。这可以通过使用新增的 --jobs
选项来实现,例如:
git fetch --recurse-submodules --jobs=4
据 Git 团队介绍,对于包含许多子版本库的版本库,这可以大大增加更新速度。当使用--recurse-submodules
而不带新增的--jobs
选项时,Git 会逐个获取子版本库。
对于希望针对不同的项目(比如工作项目和开源项目)使用不同的身份标识的开发人员而言,全局配置选项将是一个受他们所有人欢迎的新特性。当没有使用配置选项user.name
和 user.email
显式指定身份时,该特性会禁用 Git 推测提交者身份的默认行为。在这种情况下,Git 默认推测提交者身份的行为可能会导致将错误的身份用于新版本库。另一方面,设置新增选项user.useconfigonly
,即
git config --global user.useconfigonly true
将使 Git 在开发人员向新版本库提交但没有明确指定身份时发出警告,强制他们提供一个明确的身份用于那个版本库访问。
有一个相关的变化旨在让用户更容易了解特定设置定义的位置,是系统级,用户级,还是版本库级。实际上,开发人员现在可以使用:
git config --show-origin <setting name>
显示特定设置的来源位置。
Git 2.8 还有一个目标是改进它同 Windows 的集成,措施如下:
- 使用 C 重写了许多 Git 命令,让它们的运行速度更快;
- 从 it-for-Windows 分支合并了若干特定于 Windows 的更改;
- 可以识别 CRLF 及 LF 行结束符。
此外,Git 2.8.0 修复了一个整数溢出安全漏洞,该漏洞可能导致在克隆恶意版本库时任意代码的执行。对于以前的Git 版本,包括2.4.11+、2.5.5+、2.6.6+、2.7.4+,也已经提供了补丁。
Git 2.8 中其它有用的新新特性包括:
git ls-files --eol <filename>
可以帮助诊断行结束符相关的问题;git pull --rebase
现在可以使用rebase -i
激活历史改写。
要查看 Git 2.8 的完整更新列表,请点击这里。
查看英文原文: Git 2.8 Adds Improvements to Submodules, Identity Handling, and Windows Support
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论