1、测试对比文件准备

  • 文件A:diff1(diff1文件夹下可以放n个文件)

public class Diff1 {
public static void main(String[] args){
int getNum = randomNumber(10,20);
if (getNum==30){
System.out.println("中间数="+getNum);
}else {
System.out.println("此次没有找到="+getNum);
}
}
public static int randomNumber(int minNum,int maxNum){
Random rand = new Random();
int randomNum = rand.nextInt(maxNum);
randomNum = randomNum%(maxNum-minNum+1)+minNum;
return randomNum;
}
}
  • 文件B:diff2(diff2文件夹下可以放n个文件)
public class Diff2 {
public static void main(String[] args){
int addLine =10;
int getNum = randomNumber(10,20);
if (getNum==30){
System.out.println("中间数="+getNum);
}else {
// System.out.println("此次没有找到="+getNum);
}
}
public static int randomNumber(int minNum,int maxNum){
Random rand = new Random();
int randomNum = rand.nextInt(maxNum);
randomNum = randomNum%(maxNum-minNum+1)+minNum;
return randomNum;
}
}

2、git diff对比命令

diff --git /Users/diff1 /Users/diff2

  • 输出结果

diff --git a/Users/cuizhongyuan/Desktop/work/010_project/vueSpringboot/Tal_Back/src/test/java/gitdiff/diff1/Diff1.java b/Users/cuizhongyuan/Desktop/work/010_project/vueSpringboot/Tal_Back/src/test/java/gitdiff/diff2/Diff2.java
similarity index 77%
rename from /Users/cuizhongyuan/Desktop/work/010_project/vueSpringboot/Tal_Back/src/test/java/gitdiff/diff1/Diff1.java
rename to /Users/cuizhongyuan/Desktop/work/010_project/vueSpringboot/Tal_Back/src/test/java/gitdiff/diff2/Diff2.java
index 7d6e724..bfca53f 100644
--- a/Users/cuizhongyuan/Desktop/work/010_project/vueSpringboot/Tal_Back/src/test/java/gitdiff/diff1/Diff1.java
+++ b/Users/cuizhongyuan/Desktop/work/010_project/vueSpringboot/Tal_Back/src/test/java/gitdiff/diff2/Diff2.java
@@ -1,14 +1,15 @@
-package gitdiff.diff1;
+package gitdiff.diff2; import java.util.Random; -public class Diff1 {
+public class Diff2 {
public static void main(String[] args){
+ int addLine =10;
int getNum = randomNumber(10,20);
if (getNum==30){
System.out.println("中间数="+getNum);
}else {
- System.out.println("此次没有找到="+getNum);
+// System.out.println("此次没有找到="+getNum);
}
}
public static int randomNumber(int minNum,int maxNum){

3、输出格式详解(重点)

  • 第一行
diff --git a/Users/diff1/Diff1.java b/Users/diff2/Diff2.java

解释:进行比较的是->diff1版本的Diff1.java(即变动前)和diff2版本的Diff2.java(即变动后)

  • 第二行
index 7d6e724..bfca53f 100644

解释:表示两个版本的git哈希值(index区域的7d6e724对象,与工作目录区域的bfca53f对象进行比较),最后的六位数字是对象的模式(普通文件,644权限)

  • 第三行
--- a/Users/diff1/Diff1.java+++ b/Users/diff2/Diff2.java

解释:"—“表示变动前的版本,”+++"表示变动后的版本

  • 第四行
@@ -1,14 +1,15 @@

解释:其中"-1,14″分成三个部分解释->”-“减号表示第一个文件(即diff1),"1″表示第1行,“14″表示连续14行.合在一起,就表示下面是第一个文件从第1行开始的连续14行.同样的,”+1,15″表示变动后,成为第二个文件从第1行开始的连续15行

  • 最后是具体的变动内容
-public class Diff1 {
+public class Diff2 {
public static void main(String[] args){
+ int addLine =10;
int getNum = randomNumber(10,20);
if (getNum==30){
System.out.println("中间数="+getNum);
}else {
- System.out.println("此次没有找到="+getNum);
+// System.out.println("此次没有找到="+getNum);
}
}
public static int randomNumber(int minNum,int maxNum){

解释:+ int addLine =10;->表示:新增行

| - System.out.println(“此次没有找到=”+getNum);

+// System.out.println(“此次没有找到=”+getNum); ->表示改行的变动(- 表示之前,+表示之后)git diff 没有修改的概念

4、获取到git diff对比结果可以做什么?

通过Git diff可以获取到项目当前分支下提交前后的代码变动结果,有了这个结果进一步解析可以去做代码覆盖率的实现,在测试阶段可以作为测试覆盖度的一个指标,同时也可以查漏补缺那些业务代码逻辑没有测到,实现精准测试的目的。

  • 实际项目中实践如图:



更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取:

代码差异对比之git diff详解!的更多相关文章

  1. git diff详解

    这篇文章很好很好 https://www.cnblogs.com/alfayed/p/4682780.html

  2. Git命令详解

    一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...

  3. Git 命令详解及常用命令

    Git 命令详解及常用命令 Git作为常用的版本控制工具,多了解一些命令,将能省去很多时间,下面这张图是比较好的一张,贴出了看一下: 关于git,首先需要了解几个名词,如下: 1 2 3 4 Work ...

  4. Git应用详解第九讲:Git cherry-pick与Git rebase

    前言 前情提要:Git应用详解第八讲:Git标签.别名与Git gc 这一节主要介绍git cherry-pick与git rebase的原理及使用. 一.Git cherry-pick Git ch ...

  5. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  6. 【Git使用详解】Egit的常用操作详解

    常用操作 操作 说明 Fetch 从远程获取最新版本到本地,不会自动merge Merge 可以把一个分支标签或某个commit的修改合并现在的分支上 Pull 从远程获取最新版本并merge到本地相 ...

  7. git部署详解

    1.1 关于版本控制 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的 好处就是简单,但是特别容易犯错.有 ...

  8. ORM框架对比以及Mybatis配置文件详解

    ORM框架对比以及Mybatis配置文件详解 0.数据库操作框架的历程 (1) JDBC ​ JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句 ...

  9. iOS开发——开发实战篇&版本控制SVN和Git使用详解

     版本控制SVN和Git使用详解     公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的!     -----------------svn--------- ...

  10. git命令详解( 四 )

    此篇为git命令详解的第四篇,话不多说,我们直接上知识点好吧 git Push 偏离的工作 gitPush: 此命令负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录.一旦 git ...

随机推荐

  1. 颗粒流 + Janssen 定律 + Bagnold 数

    对于 \(n\) 个球,易得有 \[\begin{array}{c} \displaystyle\frac\pi2>\theta_i>-\frac\pi2,\theta_1>\cdo ...

  2. Windows 10 美化 Mac OSX 实用教程

    我前几天给新电脑装上了Windows 10系统,想要美化一下,遇到了很多问题,就出了这篇博客,帮大家踩踩坑. 在开始之前,先提醒大家一句: 美化有风险,玩机需谨慎.为以防万一,请大家在进行任何操作前创 ...

  3. 一个小小空格问题引起的bug

    程序员会遇到一种情况,一个bug排查到最后是由一个很小的问题导致的.在昨天的日常搬砖中遇到一个问题,耽搁了我大半天的时间,最后查明原因让我很无语. 首先介绍一下背景,我是做算法模型训练,目前手上的工作 ...

  4. C语言指针进阶

    目录 字符指针 指针数组 数组指针 数组指针的定义 &数组名VS数组名 数组指针的使用 数组参数.指针参数 一维数组传参 二维数组传参 一级指针传参 二级指针传参 一级指针 二级指针 数组指针 ...

  5. Linux 终端运行命令时出现多行带有加号的信息(详见文章内容)

    ++_vte_ prompt_ command +++ HISTTIMEFORMAT= +++ history 1 +++ sed 's/^ *[0-9] \+ *//' ++ local ' com ...

  6. 音视频FAQ(二)视频直播延时高

    摘要 延时高是实时互动技术中常见的问题之一,解决延时高问题需要综合考虑网络.设备.编解码算法等多个因素.解决方案包括优化设备端延时.优化网络传输延时和使用UDP进行音视频传输等.在选择音视频传输协议时 ...

  7. HTML & CSS – 实战 RWD Image 响应式图片

    前言 之前写过 HTML & CSS – Responsive Image 响应式图片 (完整版), 里面解释了原理和一些具体做法, 但是并不是以真实场景作为例子带入. 由于 RWD Imag ...

  8. CSS & JS Effect – Image 倒影框

    效果 Step1: HTML 结构 <div class="image"> <img src="./images/img-2.png" /&g ...

  9. HTML – HTML Tags & Semantic HTML 语义化 HTML

    前言 HTML tag 有 100 多个, 有些是功能形的, 非用不可, 有些是为了语义化对 screen reader 友好 (给眼睛有残缺的人也可以获取清晰的网站信息). 语义化是很重要的, 有些 ...

  10. ASP.NET Core 单元测试

    前言 单元测试是好, 但是也很花时间. 有些功能封装好了以后也不怎么会再打开, 所以通常就是徒手测试一下, 过了就过了. 但是往往就是那么神奇, 就是会有需求漏掉. 后来要加, 又由于不想潜水, 对自 ...