git常用工具difftool的使用

描述

git difftool是一个 Git 命令,允许您使用常见差异工具在文件之间比较和编辑文件。如两版本分支间需要比较合并可以用这个工具。

命令:  

git difftool [<options>] [<commit> [<commit>]] [--] [<path>…

 

常见选项

-d --dir-diff

将修改后的文件复制到临时位置,然后对它们执行一个目录 diff。该模式在启动 diff 工具之前从不提示。

 

-y --no-prompt

启动 diff 工具前不要提示。默认是每次调用 diff 工具 前提示。

 

-t <tool> --tool=<tool>

使用<tool>指定的 diff 工具。有效值包括 bc,  emerge,kompare,meld 和 vimdiff等。运行git difftool --tool-help有效的<工具>设置列表。

如果没有指定 diff 工具,git difftool将使用配置变量diff.tool。如果配置变量diff.tool没有设置,git difftool会选择一个合适的默认值。

您可以通过设置配置变量明确提供工具的完整路径difftool.<tool>.path。例如,您可以通过设置配置 kdiff3 的绝对路径difftool.kdiff3.path。否则,git difftool假定该工具在 环境变量PATH 中可用。

git difftool通过指定要在配置变量中调用的命令行,可以自定义运行其中一个已知的差异工具,以运行替代程序difftool.<tool>.cmd。

当git difftool用此工具调用(通过-t或--tool选项或diff.tool配置变量)所配置的命令行将具有可用以下变量来调用:$LOCAL被设置为包含DIFF前图像的内容的临时文件的名字和$REMOTE是设置为包含diff post-image内容的临时文件的名称。$MERGED是正在比较的文件的名称。$BASE是为了与自定义合并工具命令兼容而提供的,并且具有与$MERGED相同的值。

 

--tool-help

打印可能使用的差异工具列表--tool。

 

-g --no-gui

当git-difftool使用-g或--gui选项调用默认差异工具时,将从配置的diff.guitool变量中读取,而不是从中读取diff.tool。该--no-gui选项可用于覆盖此设置。

 

配置变量

如果尚未定义difftool等价物,则git difftool回退到git mergetool配置变量。

diff.tool

要使用的默认差异工具。

diff.guitool

--gui指定时使用的默认差异工具。

difftool.<tool>.path

覆盖给定工具的路径。如果您的工具不在 PATH 中,这非常有用。

difftool.<tool>.cmd

指定用于调用指定的 diff 工具的命令。

有关--tool=<tool>更多详细信息,请参阅上述选项

difftool.prompt

在每次调用 diff 工具前提示。

difftool.trustExitCode

如果被调用的 diff 工具返回非零退出状态,则退出 difftool。

 

使用

假如使用kdiff3作为比较工具

1. 下载kdiff3安装

windows:去官网下载双击安装。

Linux(Ubuntu):apt-get install kdiff3

2. 配置

我这儿配置成diff.guitool,而不是diff.tool是为了本机上即使不使用-t指定对比工具也有两个工具(kdiff3和vimdiff)可用。感觉更灵活些。

Windows:

git config --global --add diff.guitool kdiff3

git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe" #软件安装的位置  

Linux(Ubuntu):

git config --global --add diff.guitool kdiff3

git config --global --add difftool.kdiff3.path "/usr/bin/diff3"

我看很多文章上还像下边这样配置了一下,看了api文档没怎么看懂,测试发现不配也可以。

git config --global --add difftool.kdiff3.trustExitCode false

3.使用

同git diff的命令一样,可以自由在工作区,缓存区,版本库之间比较

# 比较两个版本分支指定目录(seal-pc)和文件(seal-page/a.js)的差异

git difftool branch1 branch2 seal-pc/ seal-page/a.js

此时使用的是vimdiff一个文件一个文件进行比较。每次文件比较前会提示将要比例的文件。vimdiff适合一个个文件比较时查看。

git difftool -y branch1 branch2 seal-pc/ seal-page/a.js

比较同上。只是每次文件比较前不会提示将要比例的文件

git difftool -g -d branch1 branch2 seal-pc/ seal-page/a.js

使用比较软件kdiff3一次打开所有差异文件进行比较。

因为配置了-d,所以会一次性加载所有的文件进行比较,不加则一个一个文件进行比较

因为配置了-g,所以使用刚才配置的kdiff3进行比较。此kdiff3的启动路径也是我刚才配置的path路径里的值。而不是使用的环境变量PATH里的。

如果使用diff.tool配置了多个比较工具,则使用git  difftool命令时可以实用-t=工具名指定使用的比例软件。如 git difftool -t=bc -d branch1 HEAD seal-pc/ seal-page/ 使用beyound compare工具进行比较

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/606137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【模拟IC学习笔记】 采样保持电路的设计

目录 采样保持工作原理 概念 时域响应-采保信号 采样网络的KT/C噪声 采样电容大小的选取 采样抖动(jitter) jitter对SNR的影响 法一 法二 采样开关的种类 单MOS管 实践&#xff1a;Nmos导通电阻 传输门 栅压自举开关 采样技术 上极板采样 下极板采样 采样保持…

spark的任务提交方式及流程

本地模式 local 测试用,不多赘述 分布式模式 standalone standalone集群是spark 自带的一个资源调度集群&#xff0c;分为两个角色&#xff0c;master/worker&#xff0c;master负责接收任务请求、资源调度&#xff08;监听端口7077&#xff09;&#xff0c;worker负责运行exec…

NPS 内网穿透安装

NPS 内网穿透安装 NPS 内网穿透安装服务端搭建SSH配置流程 NPS 内网穿透安装 NPS分为服务端和客户端&#xff0c;对应的不同操作系统软件可以在GitHub RELEASES自行选择下载。 服务端搭建 由于个人非企业级使用&#xff0c;为了方便直接使用docker安装 1.docker运行 (注意…

喇叭性能指标

喇叭的技术指标 灵敏度 频率响应曲线 额定阻抗 谐振频率F0 失真THD 灵敏度 灵敏度越高&#xff0c;声音越大。 f0 f0(bass resonace frequency)是最低共振频率(低频下限频),越低表示对低频的响应越好,在满足音腔空间的条件下,声音更饱满. 可直接用f0测试仪测量或通过测量阻…

DDD领域驱动设计(六)

资源库 领域对象需要资源存储。存储手段多样化,常见就是数据库,分布式缓存,localCache.资源库的作用,就是对领域的存储和访问进行统一管理对象。在抽奖平台中。通过下面这种方式组织资源库。 //数据库资源 import com.company.example.bussiness.lottery.repo.dao.AwardP…

iframe中的onload事件

动态创建的 display 为 none 的 iframe 元素&#xff0c;onload 事件不会执行 &#xff01; 昨天业务需求中碰到一个关于 iframe 不能正常跳转的棘手问题&#xff0c;一直猜测是 onload 事件引起的&#xff0c;虽然最后用 promise 暂时解决了&#xff0c;但是考虑到一些老版本的…

Qt / day01

1. 思维导图 2. 自由发挥应用场景实现一个登录窗口界面。 代码(mywidget.cpp)&#xff1a; #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {// windows setup //setup windows sizethis->resize(600, 370);//set window fixed si…

c/c++基础 自增自减运算符 大白讲解i++/i--/++i/--i

后置运算符&#xff1a;i表示在使用x之后&#xff0c;再使x的值加1&#xff0c;即ii1; 前置运算符&#xff1a;i表示在使用x之前&#xff0c;先使x的值加1&#xff0c;即ii1. 前缀运算和后缀运算的区别&#xff1a;前缀运算是“先变后用”&#xff0c;而后缀运算是“先用后变”…

app加载不到aar中的so库

如何将so文件打入到aar包中 1 在main下面新建jniLibs目录并将so放进去 2 在android{}中添加 sourceSets {main {jniLibs.srcDir file(jni/)}}app引用不到aar中的so文件(巨坑&#xff0c;不去查谁知道啊) 在aar 的manifeset application标签中中添加 android:extractNativeLi…

【idea】idea 开发快捷键

在Java开发中&#xff0c;有一些常用的快捷键和工具&#xff0c;可以提高开发效率。以下是一些常见的Java开发常用到的功能和快捷键&#xff1a; IDE快捷键&#xff1a; 格式化代码&#xff1a;Ctrl Alt L&#xff0c;会让代码更整齐&#xff0c;调整间距之类的 导入包&am…

第11课 利用windows API捕获桌面图像并通过FFmpeg分享

在上一章&#xff0c;我们已经实现了一对一音视频对话功能。在实际应用中&#xff0c;我们常需要把自己的电脑桌面分享给他人以实现桌面共享功能&#xff0c;这种功能在视频会议、在线教学等场景中很常见&#xff0c;这种功能如何实现呢&#xff1f;这节课我们就来解决这个问题…

单例模式---JAVA

目录 “饿汉”模式 完整代码 “懒汉”模式 完整代码 单例模式&#xff1a;保证某个类在程序中只存在唯一一份实例, 而不会创建出多个实例。 单例模式可以通过实例创建的时间来分为两种&#xff1a;“饿汉”和“懒汉”模式。 “饿汉”模式 所谓的“饿汉”模式实则就是在类…

用红葡萄酿造的白葡萄酒是怎样的?

“由黑变白”这是“黑葡萄”的直译&#xff0c;代表一种由深蓝到黑葡萄制成的白葡萄酒&#xff0c;这种酿酒方式起源于法国&#xff0c;黑皮诺和莫尼尔的红葡萄一直被加工成白葡萄酒&#xff0c;作为香槟的基础。这是可能的&#xff0c;因为红色浆果通常果肉较轻。红色素&#…

表分区管理

案例&#xff1a;--表分区-列表分区 --根据客户的省份分区&#xff0c;保存不通省份客户到不同的分区 CREATE table clients( id INTEGER primary key, name VARCHAR2(20), province VARCHAR2(20)) partition by list(province) ( partition shandong VALUES(山东省), …

【langchain】入门初探实战笔记(Chain, Retrieve, Memory, Agent)

1. 简介 1.1 大语言模型技术栈 大语言模型技术栈由四个主要部分组成&#xff1a; 数据预处理流程&#xff08;data preprocessing pipeline&#xff09;嵌入端点&#xff08;embeddings endpoint &#xff09;向量存储&#xff08;vector store&#xff09;LLM 终端&#xff…

*4.3 CUDA MEMORY TYPES

CUDA设备包含几种类型的内存&#xff0c;可以帮助程序员提高计算到全局内存的访问率&#xff0c;从而实现高执行速度。图4.6显示了这些CUDA设备内存。全局内存和恒定内存出现在图片的底部。主机可以通过调用API函数来写入&#xff08;W&#xff09;和读取&#xff08;R&#xf…

Hadoop集群环境下HDFS实践编程过滤出所有后缀名不为“.abc”的文件时运行报错:java.net.ConnectException: 拒绝连接;

一、问题描述 搭建完Hadoop集群后&#xff0c;在Hadoop集群环境下运行HDFS实践编程使用Eclipse开发调试HDFS Java程序&#xff08;文末有源码&#xff09;&#xff1a; 假设在目录“hdfs://localhost:9000/user/hadoop”下面有几个文件&#xff0c;分别是file1.txt、file2.tx…

Linux中RPM工具安装软件包

RPM(redhat package manager)包的命名规则(rpm 包安装的时候需要装依赖包,较为复杂 http-parser-2.8.0-2.el8.x86_64.rpm http-parser : 软件包的名称 2.8.0 : 软件包的版本号(版本号格式为主版本号.次版本号.修订号) 2 : 二进制包发布的次数,表示rpm包第2次编程生成的 el…

python+playwright 学习-1.环境准备与快速开始

前言 说到 web 自动化&#xff0c;大家最熟悉的就是 selenium 了&#xff0c;selenium 之后又出现了三个强势的框架Puppeteer、CyPress、TestCafe&#xff0c; 但这3个都需要掌握 JavaScript 语言&#xff0c;所以只是少部分人在用。 2020年微软开源一个 UI 自动化测试工具 P…

MySQL C API的使用

MySQL C API的使用 介绍及使用 MySQL C API&#xff08;也称为 MySQL Connector/C&#xff09;是用于与 MySQL 数据库交互的 C 语言 API。它提供了一组函数和结构体&#xff0c;允许你在 C 程序中连接到 MySQL 数据库服务器&#xff0c;并执行查询、插入、更新等数据库操作。…