分支

  • 1. diff in Linux/Unix
  • 2. diff in Git
  • 3. git diff 两点语法

Linux/Unix 系统中存在diff 命令,可以用来显示两个文本/工作路径的差异。Git diff 在此基础上进行的扩展。

1. diff in Linux/Unix

Linux 系统中的diff 命令:提供了一个文件如何转化为另一个文件的正式描述。

:~/git-test/diff_test$ touch first.txt
:~/git-test/diff_test$ touch second.txt
:~/git-test/diff_test$ vim first.txt
:~/git-test/diff_test$ vim second.txt
:~/git-test/diff_test$ cat first.txt
Now is the time
For all good men
To come to the day
of their country.
:~/git-test/diff_test$ cat second.txt
Today is the time
For all good men
And women
To come to the aid
of their country.
# 对比合并格式的差异 unified diff
:~/git-test/diff_test$ diff -u first.txt second.txt
--- first.txt   2021-10-13 09:08:48.691194175 +0800      # --- 表示原始文件
+++ second.txt  2021-10-13 09:09:00.840860053 +0800      # +++ 表示新文件
@@ -1,4 +1,5 @@                                          # 两个文件拥有的行数
-Now is the time                              # -号开始的行表示新文件中删除了该行
+Today is the time                            # +号开始的行表示新文件中增加了该行For all good men                             # 空格开始的行表示两个文件中共有一致行
-To come to the day
+And women
+To come to the aidof their country.
(base) caros@caros-ThinkStation-P340:~/git-test/diff_test$

UNIX 系统中的diff命令可以计算两个目录结构中所有对应文件之间的差异

diff -r origin/src/ new/src # 命令是不是这么写待求证

2. diff in Git

git diff 命令依据参数的个数确定两个比较对象,不显示指出文件名时,默认对比两个目录下所有文件的差异。

git diff                         # 工作目录-暂存区
git diff commit_id              # 工作目录-某次提交;commit_id=HEAD就是对比上次提交
git diff --cached commit_id     # 暂存区-某次提交
git diff commit1_id commit2_id  # 某两次提及
git diff xxx xxx file_name      # 只对比file_name的区别(文件名前加不加--都行,为了和git checkout -- filename 一致建议加上)

git 命令的可用参数

--M # 查找重命名文件(不知道有啥用)
-w  # diff 比较时忽略空白字符,还有一个详细命令 --ignore-all-spcace
--state # 统计两个树状态之间的差异,报告简介的显示有多少行发生了变化
--color # 使输出结果使用多种颜色表示,一种颜色显示一种变化。(试了一下没啥变化)
-S"string" # pickaxe 命令
Document # 只显示document的变更

git diff -S"octopus" mater~50 # matrer分支上最近50个提交中包含string 的变更。

3. git diff 两点语法

git diff 两点语法:用于显示两个提交之间的不同,两个命令等价。

git diff master bug/pr-1
git diff master..bug/pr-1.       # 两个命令等价

对比git log 的两点语法:显示各自可达,又同时不可达的提交

git log commit1..commit2

Git(9)-diff相关推荐

  1. [转]ubuntu使用meld/beyond compare 做git的diff工具

    文章目录 使用meld作为比较工具 使用BeyondCompare作为比较工具 以下只针对Ubuntu,其他系统自己斟酌修改 使用meld作为比较工具 安装meld sudo apt-get inst ...

  2. Git log diff config高级进阶

    Git 历史相关和 git config 高级进阶 前一段时间分享了一篇<更好的 git log>简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git ...

  3. ubuntu使用meld/beyond compare 做git的diff工具

    文章目录 使用meld作为比较工具 使用BeyondCompare作为比较工具 以下只针对Ubuntu,其他系统自己斟酌修改 使用meld作为比较工具 安装meld sudo apt-get inst ...

  4. 使用vimdiff做git的diff与merge工具

    第一步,安装合适的配色. Plugin 'altercation/vim-colors-solarized' 然后在.gvimrc中指定当使用gvimdiff时,采用独特的配色方案 if &d ...

  5. SourceTree提交vue前端代码报错git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\

    完整报错如下: git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\honry.guan\Ap ...

  6. SourceTree报错git -c diff.mnemonicprefix=false fatal: Unable to create ‘D:/xxx/.git/index.lock‘: File

    完整报错信息: git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\honry.guan\Ap ...

  7. SourceTree提交代码报错git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\honry

    完整报错 git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\honry.guan\AppDa ...

  8. Git 补丁— diff 和 patch 使用详解

    Git 补丁- diff 和 patch 使用详解 1. diff 和 patch 的区别 2. 生成patch 2.1 git diff 3. git format-patch 3. 应用patch ...

  9. 【转】git生成diff原理:Myers差分算法

    转载:git生成diff原理:Myers差分算法 | 大艺术家_SN 什么是Myers差分算法 举一个最常见的例子,我们使用git进行提交时,通常会使用git diff --cached来查看这次提交 ...

  10. Git之diff和status

    我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: 现在,运行git status命令看看结果 git stat ...

最新文章

  1. hibernate-session中的方法
  2. 医疗信息安全再添新保障
  3. python之time和datetime的常用方法
  4. nginx基本配置与参数说明
  5. sonar做代码检测时如何忽略一些代码文件
  6. pubwin2009收银伴侣破解版
  7. 45个实用的JavaScript黑科技
  8. 使用Docker搭建Consul集群
  9. 每日编程-20170326
  10. 网络(6)-TCP/IP对拥塞控制、滑动窗口如何实现可靠性?
  11. mysql里有sqlfront_使用SQL-Front启动MySQL8.0报错
  12. AI人才有多贵?年薪三五十万美元起步,高校教授大量投身工业界
  13. RobotFramework自动化测试框架-移动手机自动化测试Clear Text关键字的使用
  14. 中jsp加载不出来layui_Maven+JSP+SSM+Mysql实现的学生选课系统
  15. linux使用flock文件锁解决crontab冲突问题
  16. python画图代码大全-简单画图 - python代码库 - 云代码
  17. php读写明华读卡器,rwCard 明华USBIC卡读卡器IC卡读写程序 - 下载 - 搜珍网
  18. 第0课:郭盛华课程_零基础学Visual Basic编程语言
  19. 常见反爬虫方法及其应对策略
  20. review board 使用

热门文章

  1. 龙芯购买MIPS指令集的授权
  2. 哪些设计模式最值得学习
  3. fortran转换 matlab代码,将Fortran77代码转换为Matlab代码以查找特征值/向量
  4. 【转】阿里技术专家详解DDD系列 第二讲 - 应用架构
  5. 【转】分布式事务的常见解决方案
  6. 【转】RabbitMQ六种队列模式-5.主题模式
  7. 【转】ELK是什么能做什么怎么做
  8. mysql 第二大的数据_MYSQL – 从大表中的第二行中选择数据
  9. Hadoop集群HDFS各节点磁盘使用率不平衡,使用balancer做数据平衡
  10. 【JS 逆向百例】无限 debugger 绕过,某网站互动数据逆向