
Git是最流行、最可靠、性能最高的版本控制系统之一,它提供了基于版本和合并的灵活的非线性开发工具。
为了确保历史记录的完整性并防止追溯性更改,每次提交都使用对整个先前历史记录的隐式哈希,并且可以验证各个标签和提交的开发者的数字签名。
Git分布式源代码控制系统的新版本2.27.0近日发布。与之前的版本相比,新版本包含了537处变更,这些变更汇集了71位开发者的意见,其中19位是首次参与开发。
Git 2.27.0关键新功能
在 Git 2.27.0 新版本中,已移除默认包含的第二版 Git 通信协议(用于远程客户端连接到 Git 服务器)。该协议尚未被完全识别,但由于已发现一些需要单独解决的底层问题,因此默认启用。
另一方面,为了避免新版本中的混淆,如果检测到与提交关联的标签已被替换,`git describe` 命令始终使用扩展输出模式(`--long`)。此前,即使标签已被重命名或移动到 `refs/tags/` 层级结构中,描述提交的已签名或已注释标签仍会显示出来。
现在运行 `git pull` 命令时,如果未显式设置`pull.rebase`配置变量,且未应用`-[no-]rebase` 或 `--ff-only`选项,则会发出警告。要抑制未执行 rebase 操作的用户的警告,可以将该变量设置为 `false`。
“ git update-ref --stdin ”新增了几个操作,允许您直接控制链接更新事务,例如,实现跨多个存储库的两阶段原子链接更新。
此外,还审查了常用的git fetch选项。之前未提及的类似选项已被记录并转移到“git fetch”选项中。
无需更改 git 格式补丁,也无需转换非 ASCII 编码的字符,即可显示“发件人:”和“主题:”标头。
“git log”中新增了“--show-pulls”选项,不仅可以查看进行了更改的提交,还可以查看从单独分支合并这些更改的提交。
在所有组件中,交互式输入的处理已经统一,并且在显示输入请求之后但在读取操作之前添加了fflush()调用。
在“git rebase”中,您可以重新应用所有本地提交,而无需先运行“ checkout ”操作,即使其中一些提交先前已传递到上游。
配置变量“ pack.useSparse”的值已替换为“ true”,以启用先前作为实验提供的默认优化。
其他变化:
- 添加了一组通过代理访问时配置SSL连接的选项。
- 使用“清洁”和“污迹”转换过滤器时显示的信息已扩展。 例如,现在显示树状对象,其中显示了转换后的斑点。
- 在“ git merge”中添加了“ –autostash”选项。
- 改进了结帐界面。
- –no-gpg-sign选项已添加到git rebase命令中,以覆盖commit.gpgSign设置。
- 为Markdown文档添加了用户差异模板。
- 删除了导致空工作树的低薪模板上所有路由的排除限制。
- 现在,默认情况下,“ git restore –staged –worktree”操作使用“ HEAD”分支的内容,而不显示错误。
- 工作继续切换到SHA-2哈希算法,而不是SHA-1。
- 重新编写代码以与GnuPG交互。