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 ...
随机推荐
- vue插槽,也就是子页面、父页面相互传值的另一写法
父页面: <template> <div class="parent"> <p>父组件</p> <child> < ...
- 在win10中解决 你要以何方式打开此 .xlsx
鼠标右击开始按钮,点击控制面板. 查看方式选择大图标或者小图标. 然后点击“默认程序”. 点击,设置默认程序. 在左侧程序蓝,选择你需要设定的程序.然后点击“将此程序设为默认值”.确定 ...
- redis的主从服务器配置
1. redis的主从配置: (1)把redis的配置文件(reids.conf)拷贝2份 [root@192 redis]# cp redis.conf redis6380.conf [root@1 ...
- idea其他人把jar更新之后更新不到
昨天下午开始就发现这个问题,其他同事把jar更新了之后,我一直获取不到更新之后的内容.尝试了很多方法,删除具体的更新不到的jar,一直不停的mvn clean install -U -Dmaven.t ...
- Vue(十五)组件
一. 组件component 1. 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码 组件是自定义元素(对象) 2. 定义组件 ...
- java中继承和多态的理解
继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...
- Hibernate(9)_双向n对n
1.概述 ①双向 n-n 关联需要两端都使用集合属性 ②双向n-n关联必须使用连接表 ③集合属性应增加 key 子元素用以映射外键列, 集合元素里还应增加many-to-many子元素关联实体类 ④在 ...
- vue路由打开新窗口
一. <router-link>标签实现新窗口打开: 官方文档中说 v-link 指令被 <router-link> 组件指令替代,且 <router-link> ...
- .ipynb格式文件
ipynb,即ipython notebook,需要用ipython notebook打开,IPython Notebook是web based IPython封装,但是可以展现富文本,使得整个工作可 ...
- html提交表单到Servlet
源码地址 https://github.com/YouXianMing/Java-Web-Study/tree/master/Servlet-Form 演示效果(注意post与get提交方式浏览器地址 ...