2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:002068
用户头像

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

关注

评论

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

敏捷环境中的DevSecOps

龙智—DevSecOps解决方案

敏捷 DevSecOps 敏捷环境 DevSecOps和敏捷

[Python公开课]零基础玩转Python基础篇----第六节:Python中的函数

是Dream呀

2月月更

转载:公司到底怕不怕劳动仲裁?

小江

法律 仲裁

最佳实践 | 如何避免一行错误代码造成的血案?

龙智—DevSecOps解决方案

代码质量 静态代码分析 电信公司解决方案 代码检查器

智汇华云 | 通过iscsi为容器提供存储

华云数据

使用污点分析检查log4j问题

华为云开发者联盟

Java log4j JNDI 污点分析 信息流分析

加密世界的自由

CECBC

[Python公开课]零基础玩转Python基础篇----第三节:Python的常用语句

是Dream呀

Python 2月月更

[Python公开课]零基础玩转Python基础篇----第二节:Python的语法基础

是Dream呀

2月月更

打造爆款游戏互动体验,拍乐云Unity实时语音了解一下

拍乐云Pano

游戏开发 Unity RTC 实时语音

新版本插件解读|如何借助 Forward Auth 增强认证能力

API7.ai 技术团队

开源 网关 认证 Apache APISIX

2022年2月国产数据库排行榜: OceanBase“三连增”重夺探花,GaussDB实现本月最大涨幅引期待

墨天轮

数据库 opengauss TiDB oceanbase 国产数据库

AI冬奥 | 未来已来?走进元宇宙入口-虚拟数字人

Baihai IDP

人工智能 机器学习 AI 游戏 元宇宙

如何优雅的处理错误逻辑

蜜糖的代码注释

Java 2月月更 写好代码

[Python公开课]零基础玩转Python基础篇----第五节:Python的列表、元组和字典

是Dream呀

Python 2月月更

web前端培训: JavaScript 中初始值如何填充数组

@零度

JavaScript 前端开发

龙蜥社区一周动态 | 2.07-2.13

OpenAnolis小助手

Linux 开源 社群运营

Linux之watch命令

入门小站

Linux

大数据培训:在 flink 中使用 hive udf的原因分析

@零度

flink 大数据开发

智汇华云|ArStack 热迁移背后的黑魔法

华云数据

Hoo虎符研究院|Moonbeam主网上线后 “Layer 0”会有哪些改变?

区块链前沿News

Hoo 虎符交易所 虎符研究院 波卡 Moonbeam

[Python公开课]零基础玩转Python基础篇----第四节:Python的字符串

是Dream呀

Python 2月月更

花灯照 人笑颜|OceanBase祝大家工作生活都和元宵一样甜

OceanBase 数据库

数据库 分布式 开发者 OceanBase 开源 元宵

拥有CI/CD的所有益处,却更绿色

龙智—DevSecOps解决方案

静态代码分析 静态代码分析工具 SAST工具 静态分析安全测试工具

Linux下玩转nginx系列(二)——nginx配置文件说明

anyRTC开发者

nginx Linux 音视频 WebRTC 服务器

从冬奥火炬“飞扬”看我国氢能产业的发展前景

易观分析

java培训:MyBatis 相关面试题分享

@零度

mybatis JAVA开发

【C语言】数据类型

謓泽

c 数据类型 2月月更

SaaS服务的私有化部署,这样做最高效|云效工程师指北

阿里云云效

阿里云 DevOps 云原生 私有化部署 SaaS平台

数字经济下,银行线上场景化建设的服务颗粒度、用户忠诚度和生态融合度

CECBC

[Python公开课]零基础玩转Python基础篇----第七节:Python中的高级函数

是Dream呀

2月月更

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