首页 / 开源技术 / Git 2.10发布
开源技术  git

Git 2.10发布

作者:peff 翻译:赖信涛 责编:仲培艺

开源项目 Git 发布了 2.10.0 版本,70 多位开发者贡献了代码,加入了一些新特性,修复了 bug。下面就来看一下有趣的新特性吧。

push 的进度报告

当你运行git push时,你可能会看见一个进程报告,告诉你发送了多少对象,剩余多少对象,以及数据发送的速度。但是所有的数据发送到服务器之后呢?push 完成了吗?

并没有。push 大部分工作都在上传数据时完成,但有一部分是 CPU 密集的工作,必须等到所有对象发送完成之后才能开始。在这部分工作的时候,Git 并没有反馈。大多数的 push 都很小,所以这部分工作可以在瞬间完成,你不会注意到。但当 push 的对象很多时,这项工作花费的时间就比较多了,甚至会达到几分钟之久,让人干等着。

更糟糕的是,因为这部分时间网络通讯是空闲的,所以有被 HTTP 代理或其他网络设施丢弃的风险。

Git 2.10 加入了对进度报告的接收,可以让你实时关注进度,保持网络非空闲。

开源技术  git

当然,我们并不总是需要这些进度信息,有时我们不使用终端 push(或者加了 --quit)参数时,Git 2.10 也会不断地发送一个“保持唤醒”的包来保持网络非空闲。

进度报告和保持唤醒的功能都是在服务端实现的,而且对所有版本的 Git 保持了向后兼容,所以你不必升级就能使用这项功能(但是你的 host 需要升级)。

此外,还有很多和进度相关的特性。例如,git clone的时候,检查所有需要接收的对象时可以看到明确的进度。一些进度信息也更加明确,比如远程仓库的 auto-gc。

[资源1资源2 ]

签名验证的优化

Git 使用 GPG 签名的标签和 commit 很长时间了,但是用起来一直很不方便。Git 2.10 在这方面持续做了一些优化。其中一些是运行逻辑的优化,用户不可见。另外增加了一些配置选项,比如log.showSignature,来为git log的每一项验证签名。

签名验证的输出格式也发生了改变,显示 64 位的 ids,即使使用旧版本的 GPG 密钥也会显示(新版本默认使用 64 位的 ids)。这主要是为了回应 Evil 32 项目这个项目显示了使用 32 位 ids 是多么容易冲突。这个项目已经两年了,但是最近有人将日期集的假钥上传到了服务器上,又引起了新的重视。

如果你没有为你的 commit 和标签签名,这里有几个教程可以参考。

[资源1,资源2,资源3 ]

更多颜色属性

你可能已经知道,Git 可以在终端输出不同的颜色。但是你知道这些颜色是可以配置的吗?你知道你可以在自定义的 log 格式和提示中使用它们吗?有些人把它们做得非常漂亮

Git 2.10 加入了新的选项:颜色配置代码现在可以识别斜体和删除线了。

开源技术  git   开源技术  git

另外,%C(auto)填充位现在已经得到修复(设计自定义的log输出非常实用),颜色特性完美支持 FreeBSD,HEAD默认的颜色更加醒目。

[资源1,资源2,资源3,资源4 ]

其他零碎的东西

  • 一般来说,你不需要对 HTTP 连接 Debug,不过以防用得到,Git 2.10 加入了GIT_TRACE_CURL环境变量。它取代了旧的GIT_CURL_VERBOSE变量,列出更多细节,支持将输出重定向到文件(避免和其他 Git 输出的信息乱成一团),更重要的是,可以自动从结果中取消你的授权信息,让分享给别人输出信息更加安全。[资源]
  • 智能 HTTP 协议的询问窗口更加频繁,这样通过 HTTP fetch 一个较大仓库的双向数据更少。[资源]
  • submodule updateclone --recursive可以对每一个子模块的克隆失败重试。[资源]
  • 帮助页(man 页)现在可以将一些强调词语用粗体显示。资源
  • Git 内部的时间格式代码,现在可以正确显示到 2100 年,还有 84 年可以用。资源
  • 类似的,git archive现在可以通过 POSIX 扩展产生 tar 文件,来处理超过 8GB 的文件,时间戳可以用到 2242 年以后(8G 秒)。资源

以上只是 changes 的一个抽样,Git 2.10 包括 600 多次 commits,在完整的 release note 可以查看完整列表。



About worksguo

我顶的是太阳,蓝天都在我脚下。我是软件开发者,信息化专家,电子商务专家,金融学者,创业人。长期关注微软技术!

Check Also

开源技术  Rust Mozilla

Mozilla 公司的Rust 1.9发布

Rust 编程语言项目发布了 v1.9。Rust 是 Mozilla 主导开发的专注于安全、速度和并发的系统级编程语言,采用了类似浏览器的快速发布周期。Rust 1.9 的最主要变化是处理错误的 std::panic 模块稳定了。

开源技术  Python

Python将迁移到GitHub

Python 目前的维护者,Brett Cannon,日前在 Python 的核心工作流邮件列表中宣布了 Python 将迁移到 Github 中,在与 InfoQ 的对话中,Cannon 解释了决定此次迁移花了超过一年的时间,当初主要的考虑有如下三个备选方案

发表评论


x

更多推荐

微软和GitHub合作将GVFS带到macOS和Linux

开源项目 Git 发布了 2.10.0 版本,70 多位开发者贡献了代码,加入了一些新特性,修复了 bug。下面就来看一下有趣的新特性吧。

微软发布Windows Template Studio 2.0 帮开发者更轻松创建应用

开源项目 Git 发布了 2.10.0 版本,70 多位开发者贡献了代码,加入了一些新特性,修复了 bug。下面就来看一下有趣的新特性吧。

微软Translator新增AI离线翻译功能:支持简中 翻译效果提升23%

开源项目 Git 发布了 2.10.0 版本,70 多位开发者贡献了代码,加入了一些新特性,修复了 bug。下面就来看一下有趣的新特性吧。

powered by RelatedPosts