Git系列:git diff使用技巧


在这里插入图片描述
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
  • 专栏导航
    • Python面试合集系列:Python面试题合集,剑指大厂
    • GO基础学习笔记系列:记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列:总结好用的命令,高效开发
    • 算法与数据结构系列:总结数据结构和算法,不同类型针对性训练,提升编程思维

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

💖The Start💖点点关注,收藏不迷路💖

📒文章目录

  • Git Diff: 掌握差异的艺术
    • 引言
    • 基本用法
    • 查看特定文件的差异
    • 比较不同的提交
    • 使用分支进行比较
    • 忽略空白字符
    • 忽略空白行
    • 彩色显示差异
    • 使用补丁文件
    • 高级技巧
      • 交互式差异查看
      • 差异统计
      • 差异的词级别查看
      • 差异的图形化查看
    • 结语


在这里插入图片描述

Git Diff: 掌握差异的艺术

在软件开发中,版本控制是确保代码质量和跟踪更改的关键工具。Git 是目前最流行的分布式版本控制系统,而 git diff 命令则是 Git 中用于展示文件或目录差异的利器。本文旨在为中高级开发者提供 git diff 的使用技巧,帮助读者更高效地利用这一功能。

引言

在开发过程中,我们经常需要比较文件的不同版本,或者查看工作目录与当前 HEAD 的差异。git diff 命令提供了一种快速而灵活的方式来完成这些任务。它不仅可以用于查看未提交的更改,还可以比较不同的提交、分支,甚至是标签之间的差异。

基本用法

git diff 的基本用法非常简单:

git diff

这将显示工作目录中已修改但尚未暂存的文件与当前 HEAD 的差异。

如果你想查看已暂存的更改与最后一次提交的差异,可以使用:

git diff --cached

查看特定文件的差异

如果你只对某个特定文件的更改感兴趣,可以指定文件名:

git diff <filename>

比较不同的提交

要比较两个不同提交之间的差异,可以使用以下命令:

git diff <commit1> <commit2>

这将展示从 <commit1><commit2> 的所有更改。

使用分支进行比较

在处理分支时,git diff 同样非常有用。你可以比较两个分支的差异:

git diff <branch1> <branch2>

这将展示在 <branch2> 上但不在 <branch1> 上的更改。

忽略空白字符

在查看代码差异时,有时候我们希望忽略由于格式化或空格引起的更改。git diff 提供了几种选项来实现这一点:

git diff -b

这将忽略空格和制表符的差异。

忽略空白行

如果你只想忽略空白行的添加或删除,可以使用:

git diff --ignore-space-at-eol

彩色显示差异

为了更清晰地展示差异,git diff 支持彩色显示:

git diff --color

使用补丁文件

有时候,你可能需要将差异保存为一个补丁文件,以便稍后应用或发送给其他人:

git diff > patch.diff

然后,你可以使用 git apply 命令应用这个补丁。

高级技巧

交互式差异查看

Git 提供了一个交互式差异查看工具,名为 git difftool

git difftool <commit1> <commit2>

这将使用图形界面工具展示两个提交之间的差异。

差异统计

如果你需要一个提交的更改统计,可以使用 --stat 选项:

git diff --stat <commit1> <commit2>

这将提供一个高层次的概览,包括每个文件的更改摘要。

差异的词级别查看

git diff 还支持在词级别上查看差异:

git diff --word-diff

这在处理文本文件时特别有用。

差异的图形化查看

对于更喜欢图形化界面的开发者,可以使用 gitk 或其他图形化工具来查看差异:

gitk <commit1> <commit2>

结语

git diff 是一个功能强大的命令,它不仅可以帮助你跟踪代码的更改,还可以在代码审查和调试过程中提供重要信息。掌握 git diff 的使用技巧,将极大地提高你的开发效率和代码质量。希望本文提供的技巧能够帮助你更深入地理解 git diff,并将其应用到你的日常工作中。


❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏、分享下吧,非常感谢!👍 👍 👍

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

【基于element ui的color选择器】基于element ui的color选择器

技术版本如下&#xff1a; vue 2.6.14 less 3.13.1 element-ui 2.15.6 less-loader 5.0.0需求&#xff1a; 支持RGB、HEX编码、支持吸管吸取颜色、颜色选择器、颜色模板、透明度、色板、线性渐变颜色 效果图&#xff1a; 1.引入选择器的color-all文件 <template><…

Ps 滤镜:便条纸

Ps菜单&#xff1a;滤镜/滤镜库/素描/便条纸 Filter Gallery/Sketch/Note Paper 便条纸 Note Paper滤镜用于模拟手工纸张的质感和视觉效果。此滤镜将图像简化并添加浮雕和颗粒效果&#xff0c;使图像看起来像是在手工制作的纸上绘制或打印。 “便条纸”滤镜通过结合使用浮雕效果…

ZFS 文件系统结构及 ZFS 文件系统数据恢复

ZFS是一种革命性的文件系统&#xff0c;它遵循完全不同的文件系统管理方法&#xff0c;同时提供目前其他文件系统无法提供的新功能和优势。ZFS 可靠、可扩展且易于管理。 它放弃了卷的概念&#xff0c;从而摆脱了传统的文件系统原则。另外&#xff0c;ZFS 提供更复杂的存储池&…

2024车载测试还有发展吗?

2024年已过接近1/4了,你是不是还在围观车载测试行业的发展? 现在入车载测试还来得及吗? 如何高效学习车载测试呢? 首先我们看一下车载测试行情发展,通过某大平台,我们后去数据如下: 这样的数据可以预估一下未来车载测试还是会持续发展. 随着科技的发展和汽车行业的不断创新,…

LLama3大模型本地部署 仅需6步完成对话模型本地安装部署。附赠ui配置、第三方微调模型、中文模型下载地址

本篇分为三部分 一&#xff1a;6步完成llama3大模型本地部署 二&#xff1a;8步完成llama3可视化对话界面安装 三&#xff1a;微调模型、中文模型下载资源分享 一、LLama3 大模型本地部署安装 首先去mata官网下载ollama客户端 Ollama 选择合适的操作系统平台后点击dowload按钮…

【Java难点】多线程-高级

悲观锁和乐观锁 悲观锁 synchronized关键字和Lock的实现类都是悲观锁。 它很悲观&#xff0c;认为自己在使用数据的时候一定有别的线程来修改数据&#xff0c;因此在获取数据的时候会一不做二不休的先加锁&#xff0c;确保数据不会被别的线程修改。 适合写操作多的场景&…

博通Broadcom (VMware VCP)注册约考下载证书操作手册

博通Broadcom(VMware) CertMetrics 注册约考下载证书等操作指导手册&#xff08;发布日期&#xff1a;2024-5-11&#xff09; 目录 一、原 Mylearn 账号在新平台的激活… 1 二、在新平台查看并下载证书… 5 三、在新平台注册博通账号… 6 四、在新平台下注册考试… 10 一、原…

Star15.3k,开源数据可视化分析工具项目

好东西来了&#xff0c;这是一个人人可用的开源数据可视化分析工具项目&#xff0c;V 哥迫不及待的要给大家推荐这个项目&#xff0c;帆软、Tableau 等商业 BI 工具的开源替代&#xff0c;已在 Github 上被 Star了15.3k了&#xff0c;大家一起来了解一下。自己搭建起来可用&…

关于一致性,你该知道的事儿(上)

关于一致性&#xff0c;你该知道的事儿&#xff08;上&#xff09; 前言一、缓存一致性二、内存模型一致性三、事务一致性四、分布式事务一致性4.1 分布式系统的一些挑战4.2 关于副本的一些概念4.3 分布式事务之共识问题4. 3.1 PC(two-phase commit, 2PC)4.3.2 Raft 三、后记参…

SpringBoot+Vue实现图片滑块和文字点击验证码

一、背景 1.1 概述 传统字符型验证码展示-填写字符-比对答案的流程&#xff0c;目前已可被机器暴力破解&#xff0c;应用程序容易被自动化脚本和机器人攻击。 摒弃传统字符型验证码&#xff0c;采用行为验证码采用嵌入式集成方式&#xff0c;接入方便&#xff0c;安全&#…

Python使用Rembg库去除图片背景

一、引入Rembg库 #库地址 https://github.com/danielgatis/rembg#CPU使用 pip install rembg # for library pip install rembg[cli] # for library cli#GPU使用&#xff08;系统支持onnxruntime-gpu&#xff09; pip install rembg[gpu] # for library pip install rembg[gp…

网络爬虫概述与原理

网络爬虫概述与原理 网络爬虫简介狭义上理解功能上理解常见用途总结 网络爬虫分类通用网络爬虫聚焦网络爬虫增量网络爬虫深度网络爬虫 网络爬虫流程网络爬虫采集策略深度有限搜索策略广度优先搜索策略 网络爬虫简介 通过有效地获取网络资源的方式&#xff0c;便是网络爬虫。网…