Git:git diff 命令详解
工作目录 vs 暂存区
$ git diff <filename>
意义:查看文件在工作目录与暂存区的差别。如果还没 add 进暂存区,则查看文件自身修改前后的差别。也可查看和另一分支的区别。
$ git diff <branch> <filename>
暂存区 vs Git仓库
git diff --cached <filename>
意义:表示查看已经 add 进暂存区但是尚未 commit 的内容同最新一次 commit 时的内容的差异。 也可以指定仓库版本:
git diff --cached <commit> <filename>
工作目录 vs Git仓库
git diff <commit> <filename>
意义:查看工作目录同Git仓库指定 commit 的内容的差异。 <commit>=HEAD 时:查看工作目录同最近一次 commit 的内容的差异。
Git仓库 vs Git仓库
git diff <commit> <commit>
意义:Git仓库任意两次 commit 之间的差别。
扩展:
以上命令可以不指定 <filename>,则对全部文件操作。 以上命令涉及和 Git仓库 对比的,均可指定 commit 的版本。
HEAD最近一次 commitHEAD^上次提交HEAD~100上100次提交- 每次提交产生的哈希值
最佳实践
准备工作:
- 新建文件 test.txt;
- 追踪文件:git add test.txt;
- 首次提交:git commit -m "Create file test.txt"
开始测试:
1、修改文件内容,例如添加一行“000” 2、查看修改:git diff test.txt
此时由于没有向暂存区暂存此修改,此时作用是查看工作目录文件的修改。
3、提交一次:git commit -m "add line 000" 4、修改文件内容,例如添加一行“111” 5、暂存此次修改:git add test.txt,不作 commit 6、再次修改文件夹内容,例如添加一行“222” 7、查看修改:git diff test.txt
此时查看文件在工作目录(222)与暂存区(111)的差别。
其它命令自行测试
Git:git diff 命令详解的更多相关文章
- Linux 文本对比 diff 命令详解(整理)
diff 命令详解 1.概述 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在win ...
- linux shell 脚本攻略学习13--file命令详解,diff命令详解
一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从 ...
- diff 命令详解
[自注:] 1,还有个colordiff命令,用颜色标识不同的地方.需要先安装 2,diff normal模式中 2,5表示从第二行到第五行 3,diff -c 模式中,2,5表示从第二行到第五行 4 ...
- diff命令详解
Linux diff命令 Linux diff命令用于比较文件的差异. diff以逐行的方式,比较文本文件的异同处.如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录 用 ...
- git diff命令详解
1 如下命令: [devel@localhost pontus]$ git diff webserver/web_pontus/app_api/v0/urls.py# 显示如下: diff --git ...
- GIT使用教程——命令详解
$ git init 当前目录建立GIT可以管理的仓库(版本库),生成一个.git的隐藏文件夹 $ git add <filename> 将工作区的文件修改添加到版本库的暂存区 $ git ...
- git push&pull命令详解
git pull的作用是从一个仓库或者本地的分支拉取并且整合代码. git pull [<options>] [<repository> [<refspec>-] ...
- LINUX DIFF命令详解
刚才在和公司做离线IP对比,最后手工了,感觉还是比较麻烦的,遇到数据很大的时候不能手工进行了 本想用linux下的DIFF来进行对比,发现结果很乱.时间很紧最后还是手工了. 现在忙完要认认真真学习一下 ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
随机推荐
- Gson学习文档
Gson:学习系列 http://www.codeceo.com/article/java-json-api-gson-1.html
- python之模块4
1 模块与包 1.1 模块的定义 什么是模块 模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 为什么使用模块 在退出python解释器然后重新进入,之前定义的函数 ...
- TDG今日成立!
大家好我们是来自土1603-3的佟天宇.杨子浩.吴强.周泊辰(从左到右) 我们的团队名称是 TDG队 我们的口号是:“Legends Never Die!” 队员简介: 佟天宇 个性:儒雅随和 特长 ...
- SparkStreaming “Could not read data from write ahead log record” 报错分析解决
# if open wal org.apache.spark.SparkException: Could not read data from write ahead log record FileB ...
- [Nuget]使用Nuget管理工具包
摘要 这里演示如何使用Nuget对类库进行打包,并将类库上传到nuget上面. 步骤 1.在nuget官网注册账号,并登陆. https://www.nuget.org 2.下载Nuget.exe,并 ...
- JavaScript HTML DOM 元素操作(节点)
在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点 ...
- 表型数据(Phenotype Data)基本概念
表型(英语:Phenotype),又称表现型,对于一个生物而言,表示它某一特定的物理外观或成分.一个人是否有耳珠.植物的高度.人的血型.蛾的颜色等等,都是表型的例子. 表型主要受生物的基因型和环境影响 ...
- Collection was modified; enumeration operation may not execute Dictionary 集合已修改;可能无法执行枚举操作
public void ForeachDic() { Dictionary dic = new Dictionary(); dic.Add("1", 10); dic.Add(&q ...
- SQLite在.NET中自适应32位/64位系统
如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”.但是如果应用中使用了SQLite,情况就不同了. SQLite的.NET开发包来自是System.D ...
- DENIED Redis is running in protected mode
1.开源软件往往做的非常出色,错误的时候,会告诉你原因,以及怎么修改,仔细阅读就能明白.比如这个错误: [root@localhost src]# ./redis-cli -h 172.16.2.16 ...