当前位置: 首页 > news >正文

[git diff] 对比检查变更 | 提交前复审 | 版本回退

git diff

git diff 是 Git 版本控制系统中用于比较文件差异的核心命令,可以显示工作目录、暂存区(Index)和仓库历史之间的变化。

通过对比不同版本或状态的文件内容,帮助开发者理解代码变更。

比较工作目录与暂存区

运行以下命令查看工作目录中尚未暂存的修改(与最后一次 git add 相比的差异):

git diff

比较暂存区与最新提交

添加 --cached--staged 参数,显示已暂存但未提交的变更(与最新提交 HEAD 的差异):

git diff --cached

比较工作目录与最新提交

直接对比工作目录和最新提交(跳过暂存区):

git diff HEAD

比较两个历史提交

通过提交哈希或分支名对比两个历史版本。以下命令比较 commitAcommitB 的差异:

git diff commitA commitB

比较分支差异

对比两个分支(如 mainfeature)的代码差异:

git diff main..feature

统计变更行数

添加 --stat 参数仅显示变更统计(增删行数)而非具体内容:

git diff --stat

忽略空格变化

使用 -w 参数忽略空格差异,聚焦实质性代码变更:

git diff -w

输出差异到文件

将差异结果重定向到文件(如 changes.diff),便于分享或存档:

git diff > changes.diff

代码示例解析差异

以下 Python 脚本模拟 git diff 的部分逻辑,对比两个文本文件的差异:

import difflibdef compare_files(file1, file2):with open(file1, 'r') as f1, open(file2, 'r') as f2:diff = difflib.unified_diff(f1.readlines(),f2.readlines(),fromfile=file1,tofile=file2)print(''.join(diff))compare_files('old_version.py', 'new_version.py')

典型工作流程示例

  1. 修改文件后检查变更
    在本地编辑代码后,立即运行 git diff 确认修改内容是否符合预期。

  2. 提交前的复审
    执行 git diff --cached 确保暂存区的变更准备就绪

  3. 分支合并前检查
    使用 git diff main..feature 预览即将合并的分支差异,避免冲突。

  4. 版本回退验证
    通过 git diff HEAD~1 HEAD 检查最近一次提交的改动,确认是否需要回退。

http://www.dtcms.com/a/330114.html

相关文章:

  • SQL 核心操作全解析:从基础查询到关联关系实战
  • Spring Boot项目通过Feign调用三方接口的详细教程
  • 在es中安装kibana
  • 雨量系列篇一:翻斗雨量传感器与压电雨量传感器的区别是什么
  • java法定退休年龄计算器
  • Thinkphp(GUI)漏洞利用工具,支持各版本TP漏洞检测,命令执行,Getshell
  • reactive和ref使用方法及场景
  • GitHub 热榜项目 - 日榜(2025-08-13)
  • 光伏电站运维巡检指南
  • 02 流程流转
  • H616基于官方外设开发----1
  • 每日五个pyecharts可视化图表-line:从入门到精通 (5)
  • C++ 四种类型转换
  • el-table合并相同名称的列
  • 朝花夕拾(三)---------中文分词利器jieba库的详解与实战应用(python)
  • 洛谷 小 Y 拼木棒 贪心
  • 函数对象(仿函数)适配器
  • 《量子雷达》第2章 从量子信息到量子雷达 预习2025.8.13
  • 工业视觉检测中的常见的四种打光方式
  • Java 导出word 实现表格内插入图表(柱状图、折线图、饼状图)--可编辑数据
  • java反射与泛型的简单知识和应用
  • 【KO】Android 网络相关面试题
  • 326. 3 的幂
  • 不用费心备份操作的实验记录本
  • VUE基础笔记
  • 【AI学习100天】Day07 加入AI社区,通往AGI之路
  • C# 反射和特性(获取Type对象)
  • 【C#】利用数组实现大数数据结构
  • Spring Cloud系列— Alibaba Sentinel限流
  • Pycharm现有conda环境有对应env,但是添加后没反应