近日 发布 的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的集成,措施如下:
此外,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