\

看新闻很累?看技术新闻更累?试试下载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= -p\

\\

在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

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

  1. 开发一个基于Dalvik字节码的相似性检测引擎,比较同一款Android应用程序的不同版本之间的代码差异(二)

    上文我们说过,<针对Dalvik字节码的相似性检测引擎,比较同一款Android应用程序的不同版本之间的代码差异>这篇文章计划分两个部分来讲解,上文只介绍了如何利用Quarkslab公司开 ...

  2. git把另一个盘的代码上传_Git内部原理揭秘!从文件更改到代码储存,Git究竟是怎么实现的...

    原标题:Git内部原理揭秘!从文件更改到代码储存,Git究竟是怎么实现的 新智元推荐 来源:腾讯技术工程 作者:lzaneli [新智元导读]本文以一个具体实例结合动图介绍了Git的内部原理,包括Gi ...

  3. git add . 之后 想执行回滚操作(git add 到本地仓库的代码回滚到没有add 之前的操作)

    git add 到本地仓库的代码回滚到没有add 之前的操作 ,如果git 非常熟悉临时忘记了命令 回滚单个文件的命令:git restore --staged  xx文件名 回滚所有add 的文件直 ...

  4. 解决Git Revert操作后再次Merge代码被冲掉的问题

    解决Git Revert操作后再次Merge代码被冲掉的问题 参考文章: (1)解决Git Revert操作后再次Merge代码被冲掉的问题 (2)https://www.cnblogs.com/ja ...

  5. git gui怎么拉取项目代码_Git可视化极简易教程 —— Git GUI使用方法

    前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的成本,但是搜索了一下并 ...

  6. git gui怎么拉取项目代码_Git GUI使用方法【转】

    前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的成本,但是搜索了一下并 ...

  7. git 在ssh情况下提交代码

    git --version   --git版本        用户目录(~/) vim ~/.gitconfig   --编辑用户目录(~/)下的 .gitconfig文件 --输入i 进入编辑模式 ...

  8. git 拉取远程其他分支代码_【记录】git 拉取远程分支代码,同步到另一个git上...

    最近有需求从某git 上拉取所有分支代码同步到另一git上,现记录操作步骤,以便日后使用: 1:先克隆其中一个分支代码到本地环境 git clone -b test http://账号:密码@XXX. ...

  9. git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法

    前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的成本,但是搜索了一下并 ...

最新文章

  1. 4.Python基础语法(数字运算/字符串/列表/元组/字典/集合)
  2. 20-思科防火墙:Network Static NAT:网络静态NAT
  3. static、volatile、synchronize
  4. 前端学习(2683):重读vue电商网站4之登录页面总结使用 iconfont 给输入框添加图标
  5. C#前后端操作json数据
  6. 剑指Offer之寻找链表倒数第k个节点
  7. 一个广为人知但鲜有人用的技巧:对象池
  8. 安装时后的idea,项目不能运行,pom.xml文件不能下载到本地仓库,maven配置是正确的...
  9. Android-LayoutInflater布局文件解析过程分析
  10. 基于Python实现的DHT嗅探器
  11. Android回忆启示录
  12. uefi模式下修改Intel网卡MAC地址
  13. PCB画板与硬件调试+AD快捷键小技巧
  14. C#中使用listview的checkBoxs全选和取消全选
  15. 【智能制造】制造业信息化与工业4.0
  16. 算法笔记.胡凡 第五章 数学问题
  17. python分析qq好友_Python2.7获取QQ空间部分好友
  18. libuv访问mysql_libuv源码剖析
  19. NBOJv2 Problem 1009 蛤玮的魔法(二分)
  20. idea创建python spark项目的步骤_Spark入门(二)--如何用Idea运行我们的Spark项目

热门文章

  1. Activity 中的Toast在Activity销毁后报错,解决方法,把context改成应用的
  2. Android RelativeLayout和LinearLayout性能分析
  3. android 自定义checkBox的样式
  4. Fastify 2.2.0 和 1.14.5 发布,极速 Node.js Web 框架
  5. MMIX机器简要介绍
  6. Juqery让世界更美好--超级简单实用的(上、下)自动翻的最佳效果,有图为证!...
  7. fwrite、write、fread、read
  8. 前端 ---JS中的面向对象
  9. Spring boot 字符集编码
  10. linux下mysql开启远程访问权限及防火墙开放3306端口(mysql开放host访问权限)