【git】看懂git diff

2023-05-16

git diff

可以用来比较:

1.staging area和working area的文件 (无其他参数时)

[plain]  view plain copy print ?
  1. git diff  

2.master分支和working area的文件 (用master参数)

[plain]  view plain copy print ?
  1. git diff master   


3.HEAD指向的内容和working area的文件

[plain]  view plain copy print ?
  1. git diff HEAD  


4.用远程master分支比较当前工作区

[plain]  view plain copy print ?
  1. git diff refs/remotes/origin/master  

5.经常还要用到master分支的某个文件的历史版本和working area的该文件的比较

[plain]  view plain copy print ?
  1. git diff 0c5ee16a6a4c849d0ae0448caa8ff174399c7c3c ./socket_helper.cpp  
上面的命令中, diff后面的参数指的是commit id, ./socket_helper.cpp是要比较的文件路径。


diff的命令输出格式注意:

[plain]  view plain copy print ?
  1. ---代表源文件  
  2. +++代表目标文件  
通常working area的文件都是被当作目标文件来看待。

-开头的行,是只出现在源文件中的行

+开头的行,是只出现在目标文件中的行

空格开头的行,是源文件和目标文件中都出现的行

差异按照差异小结进行组织,每个差异小结的第一行都是定位语句,由@@开头,@@结尾。

[plain]  view plain copy print ?
  1. chenshu@chenshu-yangzhou-home:~/kaimei/data_service/src$ git diff 0c5ee16a6a4c849d0ae0448caa8ff174399c7c3c ./socket_helper.cpp  
  2. diff --git a/data_service/src/socket_helper.cpp b/data_service/src/socket_helper.cpp  
  3. index d606452..047e213 100755  
  4. --- a/data_service/src/socket_helper.cpp  
  5. +++ b/data_service/src/socket_helper.cpp  
  6. @@ -4,6 +4,7 @@  
  7.  #include "data/login_response.h"  
  8.  #include "data/heartbeat_response.h"  
  9.  #include "helper/parser.h"  
  10. +#include "helper/time_measure.h"  
  11.  #include <booster/log.h>  
  12.  #include "exception/socket_error.h"  
  13.  #include "exception/data_error.h"  
上面的diff结果表明

1.某个提交记录0c5ee代表的socket_helper.cpp文件是源文件,当前working area的socket_helper文件是目标文件。

2.在源文件第4行开始的6行和目标文件第4行开始的7行构成一个差异小结

3.这个差异小结中,目标文件添加了一行#include "helper/time_measure.h"

4.其他空格开头的行表明没有差异。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【git】看懂git diff 的相关文章

  • php run git 收到“ssh 权限被拒绝”

    我正在尝试从浏览器中运行 git pull php 脚本 但我得到了 sh 连接到主机 git assembla com 端口 22 权限被拒绝 我的 PHP 脚本
  • 您对版本控制进行到什么程度了? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Github 版本如何生成存档文件名?

    我刚刚在 github 上为我的 NFQL 软件创建了版本 这是发布页面 https github com vbajpai nfql releases https github com vbajpai nfql releases 对于最新版
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • 致命:早期 EOF 致命:索引包失败

    我用谷歌搜索并找到了很多解决方案 但没有一个适合我 我试图通过连接到 LAN 网络中的远程服务器来从一台计算机进行克隆 从另一台机器运行此命令会导致错误 但是在服务器上使用 git 192 168 8 5 运行相同的克隆命令 一切正常并且成
  • “git rm --cached”、“git Restore --staged”和“git reset”之间有什么区别

    我遇到了以下三种方法来取消暂存由命令 git add 暂存的文件 git rm cached
  • 将 svn 存储库添加到现有的 git 存储库中?

    我知道你可以使用 git svn init 来跟踪 svn 存储库 但这是为了你想创建一个全新的存储库 我的情况是 我目前已经有一个现有的 git 存储库 并且希望通过将 svn 存储库设为我当前 git 存储库中的远程分支来跟踪 svn
  • 有关多个远程存储库的 Git 状态

    我有一个脚本 如果我忘记在 40 多个存储库中提交或推送一些代码 它会通过电子邮件向我发送提醒 在我的两个项目中 我遵循了这些帖子中的答案 其中我设置了 git push 来推送到多个存储库 从多个远程位置拉 推 https stackov
  • Git守护进程克隆错误

    All 我正在按照以下指示进行操作this SO https stackoverflow com a 377293 724357答案 快速提供回购 当我跑步时git clone git ipAddr git project我得到这个输出 r
  • 本地git,推送到tfs远程repo

    我厌倦了向我的队友解释使用 DVCS 相对于 CVCS 的好处 他们中的一些人害怕学习曲线 另一些人则看不出任何原因 因为对他们来说 这都是一样的 就我个人而言 我对 TFS 及其问题感到非常厌倦 每当我需要进行一些小的 修复 时 我都必须
  • 使用 TortoiseGit 创建 git 克隆时出现 SSL 证书问题

    我想在 TortoiseGit 的帮助下克隆 git 存储库 但出现错误 错误 SSL 证书有问题 请验证 CA 证书是否正常 细节 错误 14090086 SSL 例程 SSL3 GET SERVER CERTIFICATE 访问时证书验
  • 在 GitHub 上执行拉取请求时避免不需要的合并提交和其他提交

    我在 Github 上分叉了一个项目 令远程上游为upstream我的远程存储库是origin 我当地的master分支设置为跟踪远程master分支 然后我在本地添加了一些东西master 时不时与上游汇合 直到今天我想发出pull re
  • EGit(Eclipse git 插件)可以使用 SSH 密钥代替用户名和密码吗?

    我需要提交的 git 中央存储库是使用 SSH 密钥配置的 我的用户名是jmglov 但是当我执行 git 操作时 例如git clone 我使用这个配置 jmglov kitiara cat git config remote origi
  • 返回到存储库中的特定修订后提交并推送更改?

    我们需要及时返回到某个特定的提交 一些意外的改变是为了掌握 尝试恢复它挖得太深 所以 master 的状态很糟糕 现在我们希望master回到66ada4cc61d62afc 根据git 恢复到某个提交 https stackoverflo
  • Eclipse 与外部 src 和 Web 内容文件夹链接或映射

    首先这不是问题但是我遇到的问题的解决方案浪费了4 5个小时来找到解决方案 请让我知道是否有更好的替代方法来使用 eclipse 项目管理外部 src 文件夹 我正在使用版本控制系统 GIT 来管理我的项目 还使用外部 Git 客户端 Sou
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 如何在Windows上分离“Git bash”中启动的“git gui”?

    例如 我开始 git bash 我导航到某个目录 I start git gui 我关闭控制台窗口或按 Ctrl C Git gui 的窗口消失了 即使我用过git gui disown 即使当我按 Ctrl C 时它不在前台 如何正确分离
  • gitlab 请求将分支 A 合并到开发中(落后 3 次提交)我应该担心吗?

    在 gitlab 中创建合并请求时 我经常收到一条消息 请求将分支 A 合并到开发中 x 提交落后 gitlab想告诉我什么 我应该担心还是需要修复某些东西 什么 一段时间后合并请求在项目中打开时 由于其他人合并了自己的更改 您尝试合并到的
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有

随机推荐

  • EJB--应用创造下

    创建客户端以访问EJB 一 创建客户端以访问EJB 在NetBeans IDE中 xff0c 选择File gt New Project gt 在 Java类别 下选择 项目类型 xff0c 将 项目类型 选为 Java应用程序 单击下一步
  • iptables 原来这么简单

    你在找一个完整的iptables教程吗 xff1f 在本文中 xff0c 我们将向您展示如何在linux系统上安装和使用iptables 通过了解这个Linux防火墙工具 xff0c 您可以使用命令行界面更好的保护Linux xff0c 免
  • zabbix 事件通知--邮件媒体配置

    一 概述 假设我们已经配置了一些项 xff08 items xff09 和触发器 triggers xff0c 并且现在由于一些事件而引起触发器的状态改变 xff0c 那么现在是时候考虑去做一些操作了 首先 xff0c 我们不想一直盯着触发
  • zabbix 事件通知--警告脚本配置

    一 概述 假设我们已经配置了一些项 xff08 items xff09 和触发器 triggers xff0c 并且现在由于一些事件而引起触发器的状态改变 xff0c 那么现在是时候考虑去做一些操作了 首先 xff0c 我们不想一直盯着触发
  • shell 脚本统计文件数

    下面这段代码展示了通过shell 脚本统计某个目录下的文件数 xff0c 并输出到文本文件中 bin sh declare x num1 61 0 read dir for file in 96 ls a 1 96 do echo 1 if
  • 文件传输命令(持续更新中)

    文件传输是非常常用的命令 xff0c 今天小编就带大家整理一下自己常用的一些文件传输命令 xff1a rsync 命令 rsync是可以实现增量备份的工具 配合任务计划 xff0c rsync能实现定时或间隔同步 xff0c 配合inoti
  • 滑模控制

    滑模控制 举例说明滑模控制 对于一个典型的二阶系统 x 1 61 x
  • wildfly软件介绍

    WildFly是什么 xff1f Wildfly是一个开源的基于JavaEE的轻量级应用服务器 xff0c 目前 xff0c 最新版本是Wildfly 15 xff0c wildfly遵循LGPL2 1许可 xff0c 意味着可以在任何商业
  • JDK介绍与安装

    xff08 一 xff09 JDK 简介 JDK Java SE Development kit JDK java开发工具包 JDK 全称Java SE Development kit JDK xff0c 即java 标准版 开发包 xff
  • 一个简单的java程序

    xff08 一 xff09 简单的java程序 public class MyFirstApp public static void main String args System out print 34 Hello world 34 x
  • Java 注释

    xff08 一 xff09 注释的重要性 编写程序的时候 xff0c 总需要为程序添加一些注释 xff0c 用以说明某段代码的作用 xff0c 或者说明某个类的用途 xff0c 某个方法的工能 xff0c 以及该方法的的参数和返回值的数据类
  • java 标识符,分隔符,关键字

    xff08 一 xff09 标识符的介绍 Java语言中 xff0c 对于变量 xff0c 常量 xff0c 函数 xff0c 语句块也有名字 xff0c 我们统统称之为Java标识符 标识符是用来给类 对象 方法 变量 接口和自定义数据类
  • Java基本数据类型

    这节博客将向大家讲解java的数据类型 xff0c 在讲解数据类型前 xff0c 先来看一下变量 xff08 一 xff09 变量 java语言是强类型语言 xff0c 强类型包含两方面的含义 1 xff1a 所有的变量必须先声明 xff0
  • 自动类型转换

    xff08 一 xff09 自动类型转换 在java 程序中 xff0c 不同的基本类型的值经常需要进行相互类型转换 xff0c 类型转换分为自动类型转换和强制类型转换 布尔类型boolean占有一个字节 xff0c 由于其本身所代码的特殊
  • Eclipse中设置Tomcat服务器

    01首先打开eclipse软件 xff0c 点击顶部的windows菜单 xff0c 选择下拉菜单中的preferences选项 xff0c 如下图所示 02在弹出的Preference界面中选择Server 找到左侧的Runtime En
  • games系列学习 -- Möller Trumbore 算法

    M ller Trumbore 算法 是三角形与射线 光线 之间判定是否相交的快速算法 利用了重心坐标来表示三角形 首先假设射线的方程 xff1a O为发射点 D为方向向量 再假设三角形平面方程 xff1a b1 b2 1 b1 b2 分别
  • 使用手机摄像头实现视频监控实时播放

    使用手机摄像头实现视频监控实时播放 一 概述 视频监控实时播放的原理与目前较为流行的直播是一致的 xff0c 所以采用直播的架构实现视频监控实时播放 xff0c 流程图如下 xff1a
  • 滑模观测器

    什么是滑模观测器 1 滑模观测器是一类动态系统 2 滑模观测器是指根据系统的外部变量 输入变量和输出变量 的实测值得出状态变量估计值的一类动态系统 xff0c 也称为状态重构器 3 作用 xff1a xff08 1 xff09 滑模观测器不
  • ROS入门_1.18 接下来做什么?

    此时你应该已经对ROS中的一些核心概念有了一定的理解 给你一台运行ROS的机器人 xff0c 你应该能够运用所学知识来列出机器人上发布和订阅的各种话题 xff08 topic xff09 xff0c 查看话题中发布的消息 xff0c 然后编
  • 【git】看懂git diff

    git diff 可以用来比较 xff1a 1 staging area和working area的文件 xff08 无其他参数时 xff09 plain view plain copy print git diff 2 master分支和