写点什么

Git 2.17 改进了移动代码差异比较和对象搜索

  • 2018-04-22
  • 本文字数:1016 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Git 的最新版本 2.17 版给出了多个改进,以及一些小的新特性,包括更好的移动代码配色、在历史中查找对象等。

Git 2.17 通过设定移动代码行的配色组,改进了 diff 命令的显示。通常情况下,Git 在显示上并不区分移动代码行与其它的代码更改。现在,用户可以使用–color-moved 选项,以不同的配色分别显示移动了但是并未更改的代码行,以及发生了移动也做了更改的代码行。移动代码行所用的配色,可使用 diff.colorMoved选项指定。--color-moved选项支持下列配置:

  • no:不高亮显示移动代码行。
  • zebra:Git 会检测包含至少 20 个字符(字母和数字)的代码块,并选择显示配色。一旦检测到了新的代码块,就更改为另一种颜色显示。前后两个代码块的配色分别使用color.diff.{old,new}Movedcolor.diff.{old,new}MovedAlternative选项指定。
  • dimmed_zebra:与zebra配置类似。区别之处在于,它对移动代码中不感兴趣的部分变暗显示。
  • plain: 使用color.diff.newMoved所指定的配色,在新位置显示在某处移除并添加到新位置的的代码行;使用color.diff.oldMoved指定的配色,在原位置显示移除并添加到其它位置的代码行。

在 Git 2.17 版中,对 log 和 diff 命令添加了新的选项--find-object。该选项可将搜索结果仅局限于指向给定对象哈希串的提交。Git 对象可能会出现在多个提交中。例如,一个对象是在一次提交中首次创建的,之后可能会在另一次提交中删除。对象在重命名或拷贝时,会对应于多条路径,因此这样的对象不易被追踪。现在,使用下面的命令可以选取并显示指向给定对象的所有提交:

复制代码
git log --find-object=<hash-here> -p
</hash-here>

在 Git 2.17 版中,rebase(变基)命令和 am(应用递送补丁)命令都支持新选项--show-current-patch,显示使用命令给出的差异。在 rebase 或 merge 命令因发生冲突而停止时,该选项给出的输出十分有用。此外,merge 命令使用的“默认不采用 Fast Forward 模式”策略也稍作了修改。新版本在合并一个标签(tag)时,会应用 Fast Forward 模式,除非标签对象并非位于默认的“/refs/tags”目录中。对于下游(downstream)贡献者从上游(upstream)更新打标签版本上的主题分支(Topic Branch),这一改进可阻止提交无必要的合并。

Git 2.17 中还包括了很多改进,本文无法一一列举。推荐查看官方发行说明

查看英文原文: Git 2.17 Improves Moved Code Diffs and Object Search

2018-04-22 19:001682
用户头像

发布了 391 篇内容, 共 139.9 次阅读, 收获喜欢 257 次。

关注

评论

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

300M的文件,9秒钟下载完成,这款软件真的太离谱!

懒得勤快

通过Rainbond的团队管理去管理已有的组织架构

北京好雨科技有限公司

最佳实践 多租户 开源软件 rainbond

茜纱窗下夜读书(2021年11月)

美月

#读书

Linux踩过的坑

正向成长

Linux

Android 开发市场是盛是衰?你应该知晓,android音视频开发面试题

android 程序员 移动开发

高风险IP究竟来自哪里?IP定位带你反欺诈

郑州埃文科技

用户案例|告别传统金融消息架构:Apache Pulsar 在平安证券的实践

Apache Pulsar

Apache Pulsar

并发编程之深入理解CAS

飞鸟

CAS 并发’ 11月日更 比较与交换

全面升级 —— Apache RocketMQ 5.0 SDK 的新面貌

阿里巴巴中间件

云计算 阿里云 RocketMQ 云原生 中间件

模块二作业

ks

JWT、JWS与JWE

喵叔

11月日更

Android 应用层开发 Drawable 的一些叨叨絮,跨平台移动开发答案

android 程序员 移动开发

优酷小程序优化实战

阿里巴巴终端技术

小程序 ios android 客户端 包大小

RecyclerView使用GridLayoutManager为什么无法均匀分布?

Changing Lin

11月日更

如何给企业制定碳排放额度?

石云升

学习笔记 碳中和 11月日更 碳交易

龙蜥操作系统将捐赠开放原子开源基金会

OpenAnolis小助手

Linux centos 开源社区 开放原子开源基金会

资产管理系统是管钱的吗?不完全对

低代码小观

企业管理 资产配置 资产管理 管理系统 企业资产

AliRTC 开启视频互动 “零计算” 时代

阿里云CloudImagine

阿里云 音视频 RTC 视频云

golang源码学习--context

en

Context

如何用 Flutter开发一个直播应用

声网

flutter 人工智能

Android 常见的数据存储方式,腾讯T2大佬手把手教你

android 程序员 移动开发

WordPress站点快速集成腾讯数字身份管控平台CIAM,免开发实现登录认证

腾讯安全

又碰到一个奇葩的BUG

艾小仙

程序员:我熟悉多线程!面试官:都不敢写精通,还敢要26K?

Java 编程 程序员 面试 多线程

软件测试面试屡屡失败,面试官总是说逻辑思维混乱,怎么办?

六十七点五

学习方法 面试 软件测试 自动化测试 测试工程师

【应用分享】百度超级链助力CFCA建设基于区块链的电子数据存证系统

百度开发者中心

百度 超级链

Python代码阅读(第54篇):斐波那契数列

Felix

Python 编程 斐波那契 阅读代码 Python初学者

专业版再增强 | MSE 无缝兼容 Eureka 协议,性能提升50%

阿里巴巴中间件

阿里云 微服务 云原生 中间件 Eureka

如何使用注解优雅的记录操作日志 | 萌新写开源 01

Zhendong

Java GitHub

Android 应用层开发 Drawable 的一些叨叨絮(1),androidstudio中文社区

android 程序员 移动开发

客户端稳定性异常检测:函数接口“扫雷”实践

阿里巴巴终端技术

函数式接口 稳定性测试 异常检测 客户端 APP稳定性

Git 2.17改进了移动代码差异比较和对象搜索_Git_Sergio De Simone_InfoQ精选文章