与之前版本相比,新版本包含 504 处变更,由 64 名开发人员参与准备,其中 12 名开发人员首次参与开发。
- 默认已切换为
第二个版本 Git通信协议,客户端远程连接Git服务器时使用的协议。 该协议的第二个版本值得注意的是,它提供了在服务器端过滤分支和标签的能力,并向客户端返回缩短的链接列表。 以前,任何 pull 命令都会向客户端发送整个存储库中的完整引用列表,即使客户端仅更新一个分支或检查其存储库副本是否是最新的。 另一个值得注意的创新是,随着工具包中出现新功能,能够向协议添加新功能。 客户端代码仍然与旧协议兼容,并且可以继续与新旧服务器一起工作,如果服务器不支持第二个版本,则自动回退到第一个版本。 - “git config”命令中添加了“-show-scope”选项,可以更轻松地识别定义某些设置的位置。 Git 允许您在不同位置定义设置:在存储库 (.git/info/config) 中、在用户目录 (~/.gitconfig) 中、在系统范围的配置文件 (/etc/gitconfig) 中以及通过命令行选项和环境变量。 当执行“git config”时,很难理解所需设置的确切定义位置。 为了解决这个问题,可以使用“--show-origin”选项,但它只显示定义该设置的文件的路径,如果您打算编辑该文件,这很有用,但如果您想编辑该文件,则没有帮助。需要通过“git config”使用选项“--system”、“--global”或“-local”更改值。 新选项“--show-scope”显示变量定义上下文,可以与-show-origin结合使用:
$ git --list --show-scope --show-origin
全局文件:/home/user/.gitconfig diff.interhunkcontext=1
全局文件:/home/user/.gitconfig push.default=current
[...]本地文件:.git/configbranch.master.remote=origin
本地文件:.git/configbranch.master.merge=refs/heads/master$ git config --show-scope --get-regexp 'diff.*'
全局 diff.statgraphwidth 35
局部差异颜色移动平原$ git config --global --unset diff.statgraphwidth
- 在绑定设置中
证书 允许在 URL 中使用掩码。 Git 中的任何 HTTP 设置和凭据都可以针对所有连接(http.extraHeader、credential.helper)和基于 URL 的连接(credential.https://example.com.helper、credential.https://example.com)进行设置。 com.helper)。 到目前为止,仅允许在 HTTP 设置中使用 *.example.com 等通配符,但凭证绑定不支持使用通配符。 在 Git 2.26 中,这些差异被消除,例如,要将用户名绑定到您现在可以指定的所有子域:[凭证“https://*.example.com”]
用户名= ttaylorr
- 对部分克隆(部分克隆)的实验支持的扩展仍在继续,允许您仅传输部分数据并使用存储库的不完整副本。 新版本添加了一个新命令“git稀疏-checkout add”,它允许您添加单独的目录以将“checkout”操作仅应用于工作树的一部分,而不是通过命令“git”一次列出所有此类目录稀疏结帐集”(可以一一添加目录,无需每次重新指定整个列表)。
例如,要克隆 git/git 存储库而不提交 blob,将签出限制为仅工作副本的根目录,并单独标记“t”和“Documentation”目录的签出,您可以指定:$ git clone --filter=blob:none --sparse [电子邮件保护]:git/git.git
$ cd git
$ git稀疏结帐初始化--cone$ git稀疏结帐添加t
....
$ git稀疏结帐添加文档
....
$ git稀疏结帐列表
配套文档
t - 用于搜索存储库当前内容和历史修订的“git grep”命令的性能已得到显着提高。 为了加快搜索速度,可以使用多个线程(“git grep –threads”)扫描工作树的内容,但历史修订中的搜索是单线程的。 现在,通过实现从对象存储并行读取操作的能力,这一限制已被消除。 默认情况下,线程数设置为等于 CPU 核心数,在大多数情况下,现在不需要显式设置“-threads”选项。
- 添加了对“git worktree”命令的子命令、路径、链接和其他参数的自动完成输入的支持,这允许您使用存储库的多个工作副本。
- 添加了对具有 ANSI 转义序列的亮色的支持。 例如,在突出显示颜色“git config –color”或“git diff –color-moved”的设置中,您可以通过“--format”选项指定“%C(brightblue)”为亮蓝色。
- 添加了新版本的脚本
fsmonitor-watchman ,提供与机制的集成脸书守望者 加快文件更改和新文件出现的跟踪。 更新后需要git替代 挂钩在存储库中。 - 添加了优化以加快使用位图时的部分克隆速度
(位图机制)以避免在过滤输出时对所有对象进行完整搜索。 现在执行部分克隆期间检查 blob(—filter=blob:none 和 —filter=blob:limit=n)
明显更快。 GitHub 宣布了包含这些优化的补丁以及对部分克隆的实验性支持。 - “git rebase”命令已移动到不同的后端,使用默认的“merge”机制(以前用于“rebase -i”)而不是“patch+apply”。 后端在一些小方面有所不同,例如,在解决冲突后继续操作(git rebase --continue)后,新后端提供编辑提交消息的功能,而旧后端仅使用旧消息。 要恢复到旧的行为,您可以使用“--apply”选项或将“rebase.backend”配置变量设置为“apply”。
- 通过 .netrc 指定的身份验证参数的处理程序示例已简化为适合开箱即用的形式。
- 添加了 gpg.minTrustLevel 设置来设置执行数字签名验证的各种元素的最低信任级别。
- 为“git rm”和“git stash”添加了“--pathspec-from-file”选项。
- 测试套件的改进仍在继续,为过渡到 SHA-2 哈希算法而不是 SHA-1 做准备。
来源: opennet.ru