发布了新版本的Git 2.22,这些是它的更改

混帐

Git 2.22 新版本正式发布。Git是最流行、最可靠、性能最高的版本控制系统之一,同时还提供开发工具。

为了确保历史记录的完整性和对事后更改的抵抗力,在每次提交时都使用所有以前历史记录的隐式哈希,并且还可以验证各个标签和提交开发者的数字签名。

与之前的版本相比,新版本进行了 745 处更改,共有 74 位开发人员参与编写,其中 18 位是第一次参与开发。

Git 2.22关键新功能

现在可以使用命令“git branch-show-current来显示当前使用的本地分支。

此外,自 1.18 版本起,提交集的新传输模式git rebase --rebase-merges可用,该模式取代了之前的选项“ --preserve-merges ”,后者现在被标记为过时。

为了在可移植分支中保留分支结构,可以使用“ --preserve-merges ”选项,该选项在交互模式下启动(git rebase -i --preserve-merges)时,允许编辑提交历史,但不能保证完全保留存储库结构。

后继模式“ --rebase-merges ”允许您保留可移植分支中更改的结构,同时提供一整套交互式操作,包括删除、重新排列和重命名提交。

例如,“ --rebase-merges ”允许将分离分支中的提交合并到较新的主分支,同时保持可移植分支中的分支结构,并对注释进行一些更改以动态提交它们。

“ git rebase ”操作用于将一系列提交替换为新的基础提交,例如,将正在开发某些新功能的单独分支更改为主分支的当前状态,包括在该分支之后添加的任何修复。

出色的后端支持

` git bisect` 的报告已更新,现在更易读;同时,` git mergetool`现在也支持 Sublime Merge (` smerge` )作为后端。当存储的索引文件发生更改时,Git 会调用新的 ` post-index-change`钩子,这有助于虚拟化工作树的实现。

此外,“ git difftool ”现在也可以在存储库之外运行,并在检测到 HEAD 和索引之间的差异时取消“ git checkout -m <other> ”。

由于打包索引有时会在克隆过程中花费很长时间,因此开发人员一直在为您提供进度条。

同时,由于新增了 ` switch`服务器选项, ` git clone` 命令现在通过协议版本 2 进行通信。此外,多项功能改进了代码补全,开发人员还对 trace2 跟踪工具进行了改进。

全新的 Trace2 跟踪机制提供了一种更灵活、更结构化的输出格式。Trace2允许收集运行遥测和性能数据,以便进行更详细的分析和调试(用户指定控制器;不会向外部发送任何数据)。

绩效与发展

Git 内置的差异化机制已重写,现在支持 ` git commit-tree`,` pack-redundant` API和 ` git multi-pack-index verify`在包含大量包文件的仓库中运行速度更快。对于开发者而言,测试框架也已更新。

最近,` git stash`已用 C 语言实现,用于配合 ` git rebase`。C语言实现经过更新,可以防止 Git 重复覆盖同一个文件。`git diff`现在在收集 blob 信息等特殊情况下运行速度也更快了。最后,`git clone` 也加快了连接速度。

还添加了显示附加到提交的扩展“ git log”标签时进行过滤的功能。


在 Google 中将其添加为首选来源