• Git 2.20 的重大更新:侧重可用性和性能
  • 发布于 2个月前
  • 251 热度
    0 评论
  • 华鑫
  • 0 粉丝 9 篇博客
  •   

先看看官网的Git v2.20.1 Release Notes

Git v2.20.1 Release Notes
=========================
This release is primarily to fix brown-paper-bag breakages in the
2.20.0 release.

Fixes since v2.20
-----------------
 * A few newly added tests were not portable and caused minority
   platforms to report false breakages, which have been fixed.

 * Portability fix for a recent update to parse-options API.

 * "git help -a" did not work well when an overly long alias is
   defined, which has been corrected.

 * A recent update accidentally squelched an error message when the
   run_command API failed to run a missing command, which has been
   corrected.

Git 2.20 带来了大量变更和修复,包括改进的克隆(cloning)、抓取( fetching)、查询(grepping)等。此外,Git 的 Windows 端支持的 Windows 的最小版本现在已经设定为 Vista。


Git 2.20 侧重于可用性、性能的改进和 bug 的修复。例如,当克隆文件名仅仅大小写有差异的库到大小写不敏感的系统时,Git 现在可以更好地处理。在这种情况下,Git 将发出警告,以防止文件丢失。另一个改进了的命令是 git fetch,它以前不支持标记的不可变性,并悄悄地更新了所有现有标记。现在,除非给出–force 选项,否则它将失败。

现在为提交图文件的生成提供进度指示,从而改进使用大型存储库的用户体验,因为在大型存储库中,生成提交图可能需要很长的时间。与之类似,当刷新存储库索引需要很长时间时,现在 git status 命令将显示一个进度条。


git grep 命令现在可以使–no-recursive 标志以非递归的方式执行,它只是–max-depth 0 的别名。

交互式 rebase 是 Git 中最常用的命令之一,现在可以在任务列表中处理新的中断操作了,实现方法是在用户遇到中断时将控制权返还给用户。如果您希望在继续 rebase 操作之前手动修改某个提交时,在某个提交处进行中断可能是很有用的。


Git 2.20 还使配置更加灵活。在 2.19 版本之前 (包括 2.19 版本),Git 支持三种配置文件: 系统 (例如 /etc/gitconfig、Git config --system…)、全局或每个用户 (例如~/.gitconfig、git config --global …) 和每个存储库 (例如./.git/config, git config --local …),这对于共享相同存储库的工作树来说是不够的,因为它不支持具有不同配置的工作树。现在您可以使用–worktree 标记和 git config 命令读取或写入一个.git/config.worktree 文件。


在性能方面,git submodule update 以及 git rebase 和 git rebase -i 都已经用 C 重写了,因此为了获得更好的性能,移植到 C 的命令数量也越来越多了,包括 git pull、git am、git rebase 等等。


Git 2.20 还修复了许多错误,包括在编辑期间提供空提交消息时中止 rebase 操作;删除在 git status 时由于未清理重用变量而导致的断言失败;等等。

最后,Git 现在支持的最低 Windows 平台版本为至少 Windows Vista 以上。

在此,还有很多 Git 2.20 内容没有介绍,所以请不要错过官方发布说明。


Git2.20最新官网下载地址https://git-scm.com/

用户评论