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

常用的git diff命令用法汇总和示例

文章目录

      • 1. 查看工作目录和暂存区的差异
      • 2. 查看暂存区和最后一次提交的差异
      • 3. 查看两个提交之间的差异
      • 4. 查看特定文件的更改
      • 5. 查看特定文件在两个提交之间的差异
      • 6. 查看分支之间的差异
      • 7. 查看某次提交的更改
      • 8. 限制diff输出的格式
      • 9. 查看一定时间范围内的更改

Git的diff命令是一种强大的工具,用于比较Git仓库中文件的更改。以下是一些常用的git diff命令用法和示例:

1. 查看工作目录和暂存区的差异

git diff

这个命令显示自上次git add以来,在工作目录中对文件所做的未暂存的更改。

2. 查看暂存区和最后一次提交的差异

git diff --staged

或者

git diff --cached

这些命令显示自上次git commit以来,暂存区中的文件与最后一次提交的差异。

3. 查看两个提交之间的差异

git diff commit1 commit2

这里commit1commit2是两个提交的哈希值或引用。该命令显示两次提交之间的差异。

要对比两个特定的 Git 提交(例子是 e28efea6f14d41),可以使用 Git 的 diff 命令。这个命令会显示两次提交之间代码的具体更改(添加、删除或修改的行)。

在终端或命令提示符中,您可以使用以下命令来对比这两个提交:

git diff 6f14d41 e28efea

这里,6f14d41e28efea 是两个提交的哈希值。这个命令将展示自从 6f14d41 之后,直到 e28efea 所发生的所有更改。

输出结果会显示所有更改的详细内容,其中:

  • 以绿色(并且前面有 + 号)显示的是添加的行。
  • 以红色(并且前面有 - 号)显示的是删除的行。

如果您只对比这两个提交中某个特定文件的差异,可以在命令中指定文件名:

git diff 6f14d41 e28efea -- [文件路径]

请替换 [文件路径] 为您要比较的具体文件路径。

使用这个方法,您可以清楚地看到两个版本之间的代码差异,这对于了解特定更改的性质和影响非常有帮助。

4. 查看特定文件的更改

git diff [文件路径]

显示自上次git add以来,指定文件的更改。

5. 查看特定文件在两个提交之间的差异

git diff commit1 commit2 -- [文件路径]

显示两个提交之间指定文件的差异。

6. 查看分支之间的差异

git diff branch1 branch2

显示两个分支之间的差异。

7. 查看某次提交的更改

git diff commit1^!

这显示了commit1与其父提交之间的更改。

8. 限制diff输出的格式

git diff --stat

只显示每个文件的总结信息(如更改的行数和文件)。

9. 查看一定时间范围内的更改

git diff 'HEAD@{1 week ago}'

显示一周前与当前工作目录的差异。

相关文章:

  • 如何绘制出图像的色素分布直方图
  • 【python 的各种模块】(9) 在python使用PIL( 即pillow模块 ) 修改图片
  • Python 语法糖
  • Jmeter的文件参数化:CSV数据文件设置和_CSVRead函数
  • 基于python舆情分析可视化系统+情感分析+爬虫+机器学习(源码)✅
  • JS tostring()和join()方法
  • 将 RxJava 的 Observable 转换为 Reactor 的 Flux流
  • Java基础-Java基础-笔记
  • 黑马程序员 Docker笔记
  • 基于云平台技术的GPS定位的浅谈
  • 【JVM】常用命令
  • 鸿蒙OS4.0兼容性测试
  • three.js 点按钮,相机飞行靠近观察设备
  • VC++中使用OpenCV读取图像、读取本地视频、读取摄像头并实时显示
  • 2024年美赛数学建模思路 - 复盘:校园消费行为分析
  • $translatePartialLoader加载失败及解决方式
  • 【Amaple教程】5. 插件
  • Android Volley源码解析
  • CAP理论的例子讲解
  • fetch 从初识到应用
  • MQ框架的比较
  • mysql 5.6 原生Online DDL解析
  • PHP的Ev教程三(Periodic watcher)
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python学习之路13-记分
  • rc-form之最单纯情况
  • Redis学习笔记 - pipline(流水线、管道)
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 欢迎参加第二届中国游戏开发者大会
  • 聊聊redis的数据结构的应用
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 用Python写一份独特的元宵节祝福
  • 运行时添加log4j2的appender
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • MPAndroidChart 教程:Y轴 YAxis
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (规划)24届春招和25届暑假实习路线准备规划
  • (六)c52学习之旅-独立按键
  • (三)uboot源码分析
  • (十一)图像的罗伯特梯度锐化
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)c++ std::pair 与 std::make
  • .Net FrameWork总结
  • .NET 服务 ServiceController
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .net访问oracle数据库性能问题
  • .NET与 java通用的3DES加密解密方法
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)