BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Git 2.19 对Diff、Branch和Grep等做了改进

| 作者 Sergio De Simone 关注 18 他的粉丝 ,译者 姚佳灵 关注 0 他的粉丝 发布于 2018年9月19日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。
Git的最新版带来了丰富的新功能以及内部更新,包括改进的diff、branch和grep,更好的命令行补全,新的range-diff命令等。 Git diff现在可以正确地标记以intent-to-add参数添加的新文件路径。intent-to-add可以和git add命令一起使用,完整写法即git add --intent-to-add<文件名>,以给工作树添加一个空文件。这很有用,这样git diff可以在其输出中展示新文件的完整内容。但是之前,diff中的文件路径没有被标记成新的。在一份相关说明提到,apply命令也改进了其对intent-to-add选项的处理。事实上,现在在应用补丁时,给索引添加新路径只影响到用intent-to-add添加了所有新文件的工作树。回过来看diff,color-moved选项已经扩展为支持新的color-moved-ws变体,它专门制作git diff移动的彩色行,而其他未改变则显示空白。Git 2.18中类似的功能是利用color-moved和ignore-space-change来实现的,尽管后一个选项将被应用于整个输出,而不只是移动的行。 Git grep有了两个新选项:列(column),它给输出添加第一个匹配的列号;以及唯一匹配的(only-matching),它限制输出为正则表达式的匹配部分,而不是整个匹配行。

Git 2.19用两种方式改进了git branch列表。首先,git branch –list现在从branch.sort配置变量读取其默认排序选项,与git tag –list从tag.sort中获取其默认排序选项类似。此外,git branch的-l选项(它是-create-reflog的简写)已经被弃用,以防止开发人员无意中把它当做-list的别名使用。

自2.6版本开始,Git提供git fsck命令以检查被推送到存储库的对象的完整性。这项测试可以在接收端执行,并用receive.fsck.*变量进行配置。例如,如果因为zero-padded文件模式定义receive.fsck.zeroPaddedFilemode变量导致fsck失败的话,您可以让Git拒绝推送。Git 2.19利用fetch.fsck.*变量,为git fetch提供相似的功能。 在实现方面,git子模块foreach用C进行了重写,性能因此得到了改进。此外,对命令行补全的支持也得到了改进,现在会列出子命令所用的配置变量列表和包括带-no-前缀的选项。git fetch命令支持新的-negotiation-tip选项以减少返回的提交集。当本地存储库具有在远程历史记录中不存在的大量引用时,这能提高带宽和性能。 在开发方面,Git 2.19已经禁用strcat,这被认为太危险了,现在会引起编译失败。

还有很多Git 2.19中的新功能我们没有在这里进行介绍。如果您有兴趣了解全部的细节,请别错过官方发布说明。

查看英文原文:Git 2.19 Improves Diff, Branch, and Grep, and More  

感谢冬雨对本文的审校。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT