首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何改善git的差异突出?

如何改善git的差异突出?
EN

Stack Overflow用户
提问于 2018-03-14 05:06:43
回答 4查看 7.7K关注 0票数 36

git diff的输出是针对代码进行优化的,代码倾向于每行一条语句,而文本(如果像我这样的作者懒得使用换行符)会导致差异输出,这很难阅读,更像是“Wally在哪里?”搜索而不是读取diff输出

而在GitLab或GitHub的web前端所做的突出显示则立即显示了不同之处

我知道我在比较HTML和纯文本(苹果和桔子),但是应该可以通过使用不同的颜色或在更改前后添加标记字符来改进git diff输出(JUnit在插入时使用[],这并不好读,但这是我所指的一个例子),而且这将是我第一次希望在git中有一些实际上不是很好的东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-03-14 07:15:22

您可以使用--word-diff[=<mode>]选项来更容易地查看一行中哪些单词发生了变化。这在手册页中描述为

显示一个word diff,使用<mode>分隔已更改的单词。默认情况下,单词由空格分隔;参见下面的--word-diff-regex<mode>默认为平原,并且必须是下列之一:

  • color -只使用颜色高亮显示更改的单词。暗示着--color
  • plain -将单词显示为[-removed-]{+added+}.,如果它们出现在输入中,则不会试图转义分隔符,因此输出可能是不明确的。
  • porcelain --使用一种特殊的基于行的格式,用于脚本的使用.添加/删除/未更改的运行以通常统一的diff格式打印,从行开头的+/-/` `字符开始,延伸到行尾。输入中的新行由自己的行上的倾斜~表示。
  • none -再次禁用word diff。

请注意,尽管第一种模式的名称,颜色是用来高亮显示所有模式中更改的部分,如果启用的话。

票数 16
EN

Stack Overflow用户

发布于 2019-04-28 06:28:18

另一个答案中提到的word-diff并不完全是gitlab/github所做的。为了获得同样的效果,您可以使用diff-highlight脚本,即用git分发

  1. 首先查找到diff-highlight脚本的路径。它在不同的系统中有所不同,而且通常不在$PATH中。您可以在包管理器中找到它,例如:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. Fedora: `rpm -ql git | grep diff-highlight`
2. Debian/Ubuntu/Mint: `dpkg -L git | grep diff-highlight`
3. Archlinux: `pacman -Ql git | grep diff-highlight`

  1. 编辑~/.gitconfig,并向[pager]部分添加以下页面# diff (替代路径)-突出显示由git提供的脚本,该脚本逐字显示diff日志= perl /usr/share/git/diff-高亮/diff-突出显示较少的显示= perl /usr/share/git/diff-突出显示减少diff= perl /usr/share/git/diff-高亮/diff-突出显示更少。 我在这里使用perl,而不是直接调用脚本,因为某些发行版似乎没有在脚本上设置可执行位。海事组织,这是一个包裹错误,应该报告。无论如何,这个答案应该是有效的,而忽略了这一点。

现在,logdiffshow命令应该逐字显示不同的内容.截图:

票数 42
EN

Stack Overflow用户

发布于 2019-09-29 11:19:20

同样值得一提的是diffr。它是用Rust编写的,使用了Myers最长的公共子序列算法。与git的diff-highlight相比,它提供了更好的结果,参见:

git的diff-highlight

diffr

安装后,使用它类似于diff-highlight,即编辑~/..gitconfig,并添加到[pager]部分如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[pager]
    log  = diffr | less
    show = diffr | less
    diff = diffr | less
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49278577

复制
相关文章
C++函数值与参数 | 函数实现比较大小
主调函数和被调函数之间是有数据传递关系的,在调用函数时,函数是带参数的,参数分为形式参数和实际参数
小林C语言
2020/11/30
1.4K0
C++函数值与参数 | 函数实现比较大小
如何在CentOS 8 修改时区,同步时间
例如: cron 守护程序使用系统的时区执行 cron 作业,日志文件中的时间戳基于同一系统的时区。
冬冬i
2022/04/09
3.4K0
如何在 CentOS 8 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
7.4K0
如何在 CentOS 8 设置或者修改时区
QT之Qml使用QSystemTrayIcon实现系统托盘
 QT中实现这一功能使用QSystemTrayIcon,它为应用程序在系统托盘中提供一个图标。现代操作系统通常在桌面上提供一个特殊区域,称为系统托盘或通知区域,长时间运行的应用程序可以在其中显示图标和短消息。
杨永贞
2022/05/11
2.8K0
QT之Qml使用QSystemTrayIcon实现系统托盘
如何在 Debian 10 设置或者修改时区
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
雪梦科技
2020/05/11
12.6K0
如何在 Debian 10 设置或者修改时区
函数模板之compare比较大小—C++
/* 功能:编写一个函数模版compare 作者:wind 日期:2013-12-11 */ #include <iostream> using namespace std; template<typename T> bool Compare(T a,T b) { if (a==b) { return true; } else { return false; } } int main(void) { system("pause"); return 0; }
WindCoder
2018/09/19
1.6K0
如何在CentOS 8上设置或更改时区
对于许多与系统相关的任务和过程,使用正确的时区至关重要。 例如,cron守护程序使用系统的时区执行cron作业,而日志文件中的时间戳基于同一系统的时区。
用户5005176
2021/08/10
1.7K0
如何在 Ubuntu 20.04 上设置或者修改时区
使用正确的时区,对于系统相关的任务和进程来说,是最基本的。例如,cron 守护进程,使用系统时区来执行定时任务,并且在日志中的时间戳也是基于相同的系统时区。
雪梦科技
2020/05/09
28.4K0
如何在 Ubuntu 20.04 上设置或者修改时区
如何在 Ubuntu 20.04 上设置或者修改时区
本文最先发布在:https://www.itcoder.tech/posts/how-to-set-or-change-timezone-on-ubuntu-20-04/
雪梦科技
2020/05/07
5K1
如何在 Ubuntu 20.04 上设置或者修改时区
函数与触发器
在mysql里支持很多的函数,函数就如java的方法一般,都会有一个返回值,函数帮助我们完成sql语句无法做到的事情,而且数据库是可以进行数据库编程的,所以也会有流程控制语句,不过一般来讲程序员不需要使用到那么复杂的函数组合和流程控制语句。那些都是DBA数据库管理员需要干的事情,程序员只需要了解掌握一些必须和经常使用的函数和控制语句即可。
端碗吹水
2022/01/12
8960
函数与触发器
UITextView 手势触发 TouchesBegan 函数
前几天做了个手势可以改变文章字体大小的功能。开始,在当前view中添加一个UITextView ,然后添加- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event函数,可怎么也触发不了,在网上找了些资料,说得也不是很清楚,今天把它总结下。
全栈程序员站长
2022/09/16
1.3K0
记录C++遗忘项
extern那些事 extern "C" 是放在.cpp文件中,而不是放在.c中,不然会有编译错误。放在.c的情况都是加上了#ifdef __cplusplus#endif即用来识别当前文件用C++进行编译,所以才不会报错。 static那些事 静态成员变量未赋值的存放在bss段,赋值过就放在data段. 类的静态数据成员如成员函数或者成员变量,不依赖于类对象本身,即类中的静态数据成员由对象共享。因此静态变量不能使用构造函数初始化;静态函数仅能访问静态数据或静态成员函数。 静态类对象和静态对象(变量)一样,
Rock_Lee
2021/01/13
6100
如何在 Linux 中查看目录大小?
这是一篇关于如何通过一些常用的命令,显示 CentOS 或 RedHat 中的 Linux 目录大小,以及哪些文件夹占用的空间最大的教程。
章鱼猫先生
2021/10/15
13.1K0
如何在 Linux 中查看目录大小?
C++类大小的计算
可以看到,类实例化的对象的大小为1。这是因为即使类是空白类,编译器也会分配一个字节的空间来占位,用来和真正的空白/空变量区别开来(毕竟实例化其实就是分配一定的内存空间,如果没有分配空间,那么就和没有实例化差不多了)。不过注意的是,如果空白类作为基类被继承了的话,是不会对继承它的类的空间产生影响的,即在继承的一瞬间,基类大小变为0,而继承它的类的大小只与自己的成员变量有关(此处默认为单一继承):
太阳影的社区
2021/10/15
1.1K0
fstream 获取文件大小_c++获取文件大小
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
6.4K0
如何使用几何画板画函数图像,如极坐标函数图像?
1、点击[绘图] 2、点击[网格样式] 3、点击[极坐标网格] 4、点击[绘图] 5、点击[绘制新函数] 6、点击[3] 7、点击[函数] 8、点击[cos] 9、点击[θ] 10、点击[确定] 11、点击[是]
裴来凡
2022/05/28
1.3K0
如何使用几何画板画函数图像,如极坐标函数图像?
zabbix触发器和监控项设置监控时间范围
比如现在配置在晚上十二点到凌晨一点半的时候触发。 创建一个触发器,选中一个你要是用的监控项比如我这里的监控项X,点击表达式构造器。
我是李超人
2020/08/20
1.6K0
Python函数大小的权衡
有人说函数应该尽可能简短,不要超过一屏能容纳的长度。与长达几百行的函数相比,只有十几行的函数确实比较容易理解,但将大函数拆分成多个小函数也有缺点。下面我们来具体看下,在实际工作中,如何权衡大小函数。
TalkPython
2022/11/21
3410
atof函数_log函数怎么比较大小
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
4200
点击加载更多

相似问题

每个设备许可的Nook

12

访问Nook上的存储

21

如何获取nook simple touch的设备id?

25

映射外部存储设备

113

谷歌在Kindle和Nook设备上的应用内计费

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文