写点什么

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

2018 年 9 月 18 日

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

感谢冬雨对本文的审校。

2018 年 9 月 18 日 10:191076
用户头像

发布了 199 篇内容, 共 66.6 次阅读, 收获喜欢 274 次。

关注

评论

发布
暂无评论
发现更多内容

前端开发:数据处理方法分享(其一)

三掌柜

vue.js 前端 3月日更

LeetCode题解:126. 单词接龙 II,BFS,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

Veema 寄来的新书

吴威

vmware 容灾 备份 veeam esxi

金三银四,GitHub 热门面试在这里

GitHub指北

开启Python学习之旅,分享学习路上的神器集合!

王小王-123

Python 学习神器 资源分享 工具分享 学习网站

中国最可靠的 Go 模块代理

happlyfox

学习 3月日更

Kubernetes认证管理员

云原生

Kubernetes 云原生 k8s CKA

开源的 Switch 模拟器——GitHub 热点速览 v.21.12

HelloGitHub

GitHub 开源 开源项目

深入理解ES8的新特性SharedArrayBuffer

程序那些事

JavaScript ecmascript 程序那些事 es8

C语言性能优化:减少相关性依赖,利用指令并行提升性能

一笑置之

编程 性能优化 C语言 cpu 100%

带你全面认识CMMI V2.0(三)——实践域

渠成CMMI

CMMI

区块链下乡

CECBC区块链专委会

区块链

Python API 邮件发送测试

HoneyMoose

2020(大连)中国广告人年度盛典 暨“东北三省四市品牌广告”高峰论坛顺利举行;淘宝为 2020 年度丑东西颁奖

󠀛Ferry

七日更 3月日更

一个有情怀的PPT模板下载网站

happlyfox

学习 3月日更 工具分享

纸币会消失吗:数字货币如何走进我们生活

CECBC区块链专委会

货币

区块链圈频现百万元年薪招聘 现金+股票仍难觅良才

CECBC区块链专委会

区块链人才

产品经理能力不够,产品方法论来凑

lenka

3月日更

【Axure9百例NO.45】中继器的不同场景下的样式处理

zhuchuanming

原型设计 Axure 交互原型

领跑行业!浪潮云斩获“2021云管和云网大会”多项殊荣

浪潮云

云计算 云原生

LiteOS内核源码分析:位操作模块

华为云开发者社区

LiteOS 源代码 位操作 bit Huawei LiteOS

实践解析丨Rust 内置 trait:PartialEq 和 Eq

华为云开发者社区

rust hash Trait PartialEq Eq

NA公链(Nirvana)NAC公链独步公链江湖

区块链第一资讯

区块链

如何在Python中实现Round函数?

华为云开发者社区

Python 函数 Numpy Round 舍入函数

如何将多个目录下的文件汇总到一个文件夹

Tango

3月日更 IT蜗壳教学

图像视频压缩:深度学习,有一套

华为云开发者社区

深度学习 自编码器 图像压缩 循环神经网络 视频压缩

Wireshark数据包分析学习笔记Day19

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

(Day30) 谁来驱动变革

mtfelix

28天写作 bewriting

uni-app跨端开发H5、小程序、IOS、Android(七):uni-app渲染

黑马腾云

html5 uni-app 前端框架 3月日更

适配器模式在Mybatis中的妙用

Java小咖秀

Java 源码 设计模式 mybatis 开发

通过Adobe国际认证!让艺术成为职业,把未来掌握在手中

Adobe国际认证

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

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