git diff 命令用法
理解git diff的前提,首先要理解git中工作区,暂存区,本地版本库的概念,如果头脑中有这些概念,接着往下读。
git diff test.c 用来查看工作区和暂存区中test.c文件的区别。
git diff HEAD -- test.c 用来查看工作区和本地版本库中test.c文件的区别。
eg:
a. 在工作区中修改文件cfm_test.c,git diff cfm_test.c 和 git diff HEAD -- cfm_test.c 分别输出如下:
[3me]$ git diff cfm_test.c
@@ -45,7 +45,11 @@ cfm_test_init ()
tst->tst_data = XCALLOC (MTYPE_ITUT_CFM_MSG, CFM_TST_PDU_MAX_LENGTH);
if (!tst->tst_data)
{
- XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data);
+#if defined(CONFIG_DS_COVERITY)
+ XFREE( MTYPE_ITUT_CFM_TST, tst);
+#else
+ XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data);
+#endif
return NULL;
} [3me]$ git diff HEAD -- cfm_test.c
@@ -45,7 +45,11 @@ cfm_test_init ()
tst->tst_data = XCALLOC (MTYPE_ITUT_CFM_MSG, CFM_TST_PDU_MAX_LENGTH);
if (!tst->tst_data)
{
- XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data);
+#if defined(CONFIG_DS_COVERITY)
+ XFREE( MTYPE_ITUT_CFM_TST, tst);
+#else
+ XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data);
+#endif
return NULL;
}
b. 执行git add cfm_test.c,将文件提交到暂存区,输出如下:
[3me]$ git add cfm_test.c
[3me]$ git diff cfm_test.c
[3me]$ git diff HEAD -- cfm_test.c
@@ -, +, @@ cfm_test_init ()
tst->tst_data = XCALLOC (MTYPE_ITUT_CFM_MSG, CFM_TST_PDU_MAX_LENGTH);
if (!tst->tst_data)
{
- XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data);
+#if defined(CONFIG_DS_COVERITY)
+ XFREE( MTYPE_ITUT_CFM_TST, tst);
+#else
+ XFREE (MTYPE_ITUT_CFM_MSG, tst->tst_data);
+#endif
return NULL;
}
分析:由于已经将文件提交到暂存区,所以工作区和暂存区中文件无区别,所以 git diff cfm_test.c 无输出内容;由于未提交到本地版本库,工作区和本地版本库文件有区别,所以 git diff HEAD -- cfm_test.c 输出diff内容。
c. 接着执行git commit 将文件提交到本地版本库,输出如下:
[3me]$ git commit -m "for source code coverity check."
[master 444ebb0f84] for source code coverity check.
file changed, insertions(+), deletion(-)
[3me]$ git diff cfm_test.c
error: cannot run most: No such file or directory
[3me]$ git diff HEAD -- cfm_test.c
error: cannot run most: No such file or directory
分析:执行 commit 将文件提交到本地版本库, 因此工作区,暂存区,本地库三者之间的内容是一致的,因此git diff 和git diff HEAD 输出均无内容。
git diff 命令用法的更多相关文章
- 『现学现忘』Git基础 — 21、git diff命令
目录 1.git diff 命令说明 2.比较工作区与暂存区中文件的差别 3.比较暂存区与本地库中文件的差别 4.总结git diff命令常见用法 5.总结 1.git diff 命令说明 在comm ...
- diff 命令用法--如何打补丁【原创--学习笔记】
diff 命令用法 1.”-u”:表示在比较结果中输出上下文中一些相同的行,这有利于人工定位 2.“-r“:表示递归比较各个子目录下的文件 3.“-N“:将不存在的文件当作空文件 4.“-w“:忽略对 ...
- emacs 中使用git diff命令行
在shell中执行git diff命令,常常会看到例如以下警告信息: terminal is not fully functional 事实上非常easy,配置一下就可以. git config -- ...
- git diff的用法
在git提交环节,存在三大部分:working tree(工作区), index file(暂存区:stage), commit(分支:master) working tree:就是你所工作在的目录, ...
- linux中diff命令用法
diff 命 令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版 本的diff还支持二进制文件.diff程 ...
- Git:git diff 命令详解
工作目录 vs 暂存区 $ git diff <filename> 意义:查看文件在工作目录与暂存区的差别.如果还没 add 进暂存区,则查看文件自身修改前后的差别.也可查看和另一分支的区 ...
- git diff命令详解
1 如下命令: [devel@localhost pontus]$ git diff webserver/web_pontus/app_api/v0/urls.py# 显示如下: diff --git ...
- Linux下diff命令用法详解
大家好,我是良许. 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点.在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也 ...
- Git diff 常见用法
Git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 git diff 比较的是单个仓库的工作区与暂存区的差别,repo diff是对git diff的封装,用来分别显示各个项目 ...
随机推荐
- eclipse切换工作空间
- 51 Nod 线段最长重叠部分
1091 线段的重叠 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 ...
- JavaScript插件制作-tab选项卡
JavaScript插件制作练习-鼠标划过选项卡切换图片 <!DOCTYPE html> <html> <head> <meta charset=" ...
- JavaWeb_客户端相对/绝对路径和服务器端路径
客户端的绝对路径和相对路径 相对路径:相对与某个基准目录的路径,在同一根目录下各子目录文件之间的相互引用, 绝对路径:指目录下的绝对位置,直接到的目标位置 @charset "UTF-8&q ...
- spark RDD 的基本操作
好记性不如烂笔头,分享一下 Spark是一个计算框架,是对mapreduce计算框架的改进,mapreduce计算框架是基于键值对也就是map的形式,之所以使用键值对是人们发现世界上大部分计算都可以使 ...
- C++入门经典-例5.14-丢失的内存,关于内存泄漏
1:代码如下: // 5.14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...
- TCP之LAST_ACK状态
前提: A:主动关闭: B:被动关闭: A执行主动关闭,发送FIN,B收到FIN,发送ACK,进入CLOSE_WAIT,B发送FIN,进入LAST_ACK等待最后一个ACK到来: 关闭方式: (1) ...
- 怎样查看explorer里运行的DLL文件
怎样查看explorer里运行的DLL文件 tasklist /m /fi "imagename eq explorer.exe">a.txt 列出explorer用的所有模 ...
- Vue路由器的简单实现
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- hud 5750 Dertouzos
Dertouzos Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...