1.6 diff

如果你做了一个简单的改动,然后马上提交了它,你并不需要Git来告诉你你做了什么。你可能在你的脑子里记录了它。但有许多时候,你需要检验内容发生了怎样的变化。有三种主要的方法,来做到这个,都是使用同一个命令:Diff。

看着Diff它最伟大的事,是他帮助巩固我们学到的暂存区域,当我们学习怎样提交的时候。

现在,假设你改动了一个文件然后被从电脑前叫出去了一小会儿然后回来,你是怎样记起你做了什么的?

用不同的方式,你想要知道你对没存档的文件做了哪些改动。这对你用的开发工具而言同样困难。这些工具自动为你改动了代码。然而你想要找出哪些被改动了。只需输入git diff 然后你就会得到你的工作树的精确描述,也就是,仅仅是你的文件,而不同于你的暂存区域

$ ls -l

$ git diff

现在,假设你已经存档了哪些文件而且你想要知道你对暂存区域文件和最近提交的历史文件有什么区别。只需要输入git diff--staged,然后你就能看到这些改动。

$git diff --staged

作为一个小小的意外收获,通过这段练习,能帮助你巩固对暂存区域的理解。

仅因为你暂存了一个文件并不意味着你不能再次修改它。

$vi index.html

如果你继续对同一文件进行修改,状态命令将会告诉你文件已暂存,并且已经未缓存修改

$git status

同时,如果你已经做了这个,你可能需要diff命令来跳过正在暂存的区域,并告诉你在最后一次提交之后你所做的所有修改。输入git diff HEAD

$git diff HEAD

将你的工作树和头一次提交相比较

这只是在提交历史中最近一次提交的另一个别名

一旦你开始学会怎样使用分支,推,拉,这最后一个模式将来得挺困难。你能使用它将两个分支彼此比较,或者将历史中两个之前的提交彼此比较,来得知过去发生了什么更改。

现在你可能注意到最后一个diff,用一种有点冗余的方式表述了。

我只更改一个单词,但是Git现在告诉我,我更改了整行。这就是git怎样处理文本文件差异的,但是它看起来并不十分有用。

你可以加上 --color-words或者--word-diff来转换到任何Diff命令

$ git diff --color-words

$ git diff --words-color

一种对长行小改动而言更易读的报告。有时,这可以是一个正确的救星。另一个简单方便了技巧是让Diff阻止输出所有的代码块,而是仅输出更改的文件。

$ git status

使用--stat 转换到这种模式。这太棒了,当你拿到一个复杂的diff但你可能只是需要锁定一个被修改过的特定文件时。

$ git diff --stat

追踪更改是Git的活儿,Diff命令是你观察你所做的成果和Git是怎样看待这些变化的窗口。这是一个伟大的命令

时间: 2024-10-25 03:52:39

1.6 diff的相关文章

diff和patch使用指南

大纲 1.概述 2.diff的用法 3.patch的用法 4.实战演练 1.概述 diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算.     diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件.     patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合.举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么着个过程相当于 A -B = C

diff和patch命令简介

diff -u 1.txt 2.txt > diff.txt -u: 使差异输出带有上下文. 1 --- 1.txt 2017-01-21 07:09:19.015472013 -0500 2 +++ 2.txt 2017-01-21 07:11:26.385045822 -0500 3 @@ -5,9 +5,9 @@ 4 全拼,双拼 5 还是五笔 6 7 -是人就有可能犯错,软件更是如此. 8 - 9 -犯了错,就要扣工资!10 -11 +诗人就有可能犯错,软件更是如此.1213 改正的成本可

Git在Windows环境下配置Diff以及Merge工具---DiffMerge

参考出处:http://coding4streetcred.com/blog/post/Configure-DiffMerge-for-Your-Git-DiffTool主要转自:http://blog.csdn.net/u010232305/article/details/51767887 1.下载DiffMerge http://sourcegear.com/diffmerge/downloads.php,楼主选择的是 Windows Installer (64bit),安装直接下一步,这一

linux常用命令--diff

diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件> diff就会告诉你,这两个文件有何差异.它的显示结果不太好懂,下面我就来说明,如何读懂diff. 一.diff的三种格式 由于历史原因,diff有三种格式: * 正常格式(normal diff) * 上下文格式(context diff) * 合并格式(unified diff) 我们依次来看. 二.示例文

git diff获取差异文件中文乱码的解决办法

通过git的diff命令对两个commit id的版本进行差异化的对比.中文文件时出现乱码. git diff 6bded8d0c1fe1746c122121217dc0c88667091089 a9b87b07908a446a5471b233232ade2dbd0734d8 --name-only "markdown/2016/07/\345\210\206\346\224\257\346\265\213\350\257\225.md" 执行如下命令,修改core.quotepath

linux命令(45):diff命令

1.命令格式: diff[参数][文件1或目录1][文件2或目录2] 2.命令功能: diff命令能比较单个文件或者目录内容.如果指定比较的是文件,则只有当输入为文本文件时才有效.以逐行的方式,比较文本文件的异同处.如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件.列出不同的二进制文件.公共子目录和只在一个目录出现的文件. 3.命令参数: -  指定要显示多少行的文本.此参数必须与-c或-u参数一并使用. -a或--text  diff预设只会逐行比较文本文件. -

几个重要的shell命令:diff patch tar find grep

diff diir_1.0/ dir_2.0/ -urNB > dir_2.0.patch u:union以合并的格式来输出文件的差异信息 r:递归的对比所有的子目录下的文件 U:将不存在的文件视为空文件 B:忽略空行引起的差异 ~/dir_1.0$ patch -p1< ../dir_2.0.patch -p1的意思是忽略补丁文件中的路径一级分量:比如补丁是在home目录生成的,home目录下有dir_1.0/ dir_2.0/两个目录. 打补丁的时候进入了dir_1.0/这个目录,我就需要

eclipse quick diff功能

Eclipse文本编辑器和Java编辑器都提供了quick diff功能.这就使得你可以快速地识别出当前所编辑文件版本和该文件的参考版本之间的不同. 如果编辑器的quick diff功能没有启用,可以打开Preferences对话框,然后在搜索框里输入"quick diff",点击"quick diff"选项后,在右边部分做相应的设置. 如果你在编辑器中做了相应的修改,则在编辑器右边的快速差别标尺的对应位置上就会出现相应的标记,你可以把鼠标放在编辑上查看相应的信息.

Linux3:more、which、find、chmod、tar、diff、grep、ps、netstat、uname

more 类似cat,不过more不是将整个文件内容从上到下显示在屏幕上的,而是以一页一页的显示方便使用者逐页阅读.more最基本的指令就是space即往下翻一页,b即往回翻一页显示,而且还有搜索字符串的功能 +n:从第n行开始显示 -n:定义屏幕大小为n行 +/pattern:在每个档案显示前搜索该字符串patern,然后从该字符串前两行之后显示 -p:通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似 -s:把连续的多个空行显示为一行 -u:把文件内容中的下划线去掉 常用操作命令: En

diff两个文件夹里的东西

diff --help -x, --exclude=PAT               exclude files that match PAT 排除某个类型的文件 -u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context 输入行好 -N, --new-file                  treat absent files as empty 如果某个文件只在一个地方有,就把这个文件当作不存