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的封装,用来分别显示各个项目 ...
随机推荐
- 需求-java web 能够实现整个文件夹的上传下载吗?
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...
- Codeforces Round #560 Div. 3
题目链接:戳我 于是...风浔凌弱菜又去写了一场div.3 总的来说,真的是比较简单.......就是.......不开long long见祖宗 贴上题解-- A 给定一个数,为01串,每次可以翻转一 ...
- C语言写数据库(一)
/*** connect.c ***/ #include<stdio.h> #include<stdlib.h> #include"mysql.h" int ...
- Codeforces 343D Water Tree & 树链剖分教程
原题链接 题目大意 给定一棵根为1,初始时所有节点值为0的树,进行以下三个操作: 将以某点为根的子树节点值都变为1 将某个节点及其祖先的值都变为0 *询问某个节点的值 解题思路 这是一道裸的树链剖分题 ...
- JavaWeb_客户端相对/绝对路径和服务器端路径
客户端的绝对路径和相对路径 相对路径:相对与某个基准目录的路径,在同一根目录下各子目录文件之间的相互引用, 绝对路径:指目录下的绝对位置,直接到的目标位置 @charset "UTF-8&q ...
- 分布式-信息方式-ActiveMQ的静态网络连接
ActiveMQ的静态网络连接 在一台服务器上启动多个Broker步骤如下:1:把整个conf文件夹复制一份,比如叫做conf22:修改里面的 activ ...
- ES6指北【1】——let、const
1.如何学习ES6 1.1 js的学习顺序 ES5 -> ES6 -> ES7 -> ES8 以此类推 ES5没学好就别想学好ES6 1.2 边学边用 学了就要用 2.变量声明的方式 ...
- 套接字I/O函数write/read writev/readv send/recv sendto/recvfrom sendmsg/recvmsg
函数原型 read/write系原型 #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); #include ...
- webpack 第二部分
默认根目录 当前项目 修改目录 devServer devServer:{ open:true, //自动打开浏览器 port:3000, // 端口 contentBase:"dist&q ...
- 使用OMF特性
Oracle 的OMF全称"Oracle managed file",关于这个概念的参考请自行查阅Oracle官方文档"Using Oracle-Managed File ...