转载

Git 2.8改进子版本库、身份处理和Windows支持

近日 发布 的Git 2.8带来了许多新特性、改进和Bug修复。其中,最值得注意的是子版本库并行获取、Git用户身份处理方式改进以及更好的Windows支持。

子版本库并行获取允许一次获取多个版本库,旨在减少获取版本库及其所有相关子版本库所需的时间。这可以通过使用新增的 --jobs 选项来实现,例如:

git fetch --recurse-submodules --jobs=4 

据Git团队介绍,对于包含许多子版本库的版本库,这可以大大增加更新速度。当使用 --recurse-submodules 而不带新增的 --jobs 选项时,Git会逐个获取子版本库。

对于希望针对不同的项目(比如工作项目和开源项目)使用不同的身份标识的开发人员而言,全局配置选项将是一个受他们所有人欢迎的新特性。当没有使用配置选项 user.nameuser.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

原文  http://www.infoq.com/cn/news/2016/04/git28-released
正文到此结束
Loading...