git diff的文字说明

如果两个文件相似度很高,那么上下文格式的diff,将显示大量重复的内容,很浪费空间。1990年,GNU diff率先推出了"合并格式"的diff,将f1和f2的上下文合并在一起显示。

它的使用方法是加入u参数(代表unified)。

  $ diff -u f1 f2

显示结果如下:

  --- f1 2012-08-29 16:45:41.000000000 +0800
  +++ f2 2012-08-29 16:45:51.000000000 +0800
  @@ -1,7 +1,7 @@
   a
   a
   a
  -a
  +b
   a
   a
   a

它的第一部分,也是文件的基本信息。

  --- f1 2012-08-29 16:45:41.000000000 +0800
  +++ f2 2012-08-29 16:45:51.000000000 +0800

"---"表示变动前的文件,"+++"表示变动后的文件。

第二部分,变动的位置用两个@作为起首和结束。

  @@ -1,7 +1,7 @@

前面的"-1,7"分成三个部分:减号表示第一个文件(即f1),"1"表示第1行,"7"表示连续7行。合在一起,就表示下面是第一个文件从第1行开始的连续7行。同样的,"+1,7"表示变动后,成为第二个文件从第1行开始的连续7行。

第三部分是变动的具体内容。

第三部分是变动的具体内容。

   a
   a
   a
  -a
  +b
   a
   a
   a

除了有变动的那些行以外,也是上下文各显示3行。它将两个文件的上下文,合并显示在一起,所以叫做"合并格式"。每一行最前面的标志位,空表示无变动,减号表示第一个文件删除的行,加号表示第二个文件新增的行。

六、git格式的diff

版本管理系统git,使用的是合并格式diff的变体。

  $ git diff

显示结果如下:

  diff --git a/f1 b/f1
  index 6f8a38c..449b072 100644
  --- a/f1
  +++ b/f1
  @@ -1,7 +1,7 @@
   a
   a
   a
  -a
  +b
   a
   a
   a

第一行表示结果为git格式的diff。

  diff --git a/f1 b/f1

进行比较的是,a版本的f1(即变动前)和b版本的f1(即变动后)。

第二行表示两个版本的git哈希值(index区域的6f8a38c对象,与工作目录区域的449b072对象进行比较),最后的六位数字是对象的模式(普通文件,644权限)。

  index 6f8a38c..449b072 100644

第三行表示进行比较的两个文件。

  --- a/f1
  +++ b/f1

"---"表示变动前的版本,"+++"表示变动后的版本。

后面的行都与官方的合并格式diff相同。

  @@ -1,7 +1,7 @@
   a
   a
   a
  -a
  +b
   a
   a
   a

原文地址:https://www.cnblogs.com/eret9616/p/9577507.html

时间: 2024-08-06 00:11:39

git 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

emacs 中使用git diff命令行

在shell中运行git diff命令,经常会看到如下警告信息: terminal is not fully functional 其实很简单,配置一下即可. git-config --global core.pager ""

git Diff

在git提交环节,存在三大部分:working tree, index file, commit 这三大部分中: working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了. index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了. commit:是最后的阶段,只有commit

三十七、git diff简介

原文: http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-diff.html git diff可以比较working tree同index之间,index和git directory之间,working tree和git directory之间,git directory中不同commit之间的差异,同时可以通过[<path>...]参数将比较限定于特点的目录或文件 . git diff

git diff 打补丁

[[email protected] demo]# git diff old new >cc.diff[[email protected] demo]# cat cc.diffdiff --git a/old/a/p/foo.txt b/new/a/p/foo.txtindex f041bcd..7351245 100644--- a/old/a/p/foo.txt+++ b/new/a/p/foo.txt@@ -1,2 +1,2 @@-old_line_1-old_line_2+new_lin

git diff 文件对比

1.  git diff  filepath 工作区与暂存区比较 2. git diff HEAD filepath 工作区与HEAD ( 当前工作分支) 比较 3. git diff --staged 或 --cached  filepath 暂存区与HEAD比较 4. git diff branchName filepath  当前分支的文件与branchName 分支的文件进行比较 5. git diff commitId filepath 与某一次提交进行比较

git diff patch

如何生成patch:修改一个地方,然后git diff > xxx.patch 就会生成一个patch文件,这里的关键似乎是, 源文件的某个模块的版本要和线上发布的最新版本要一致,这样patch才会被官方采纳. git diff --help就会激活一个帮助页面git xxx --help 如何采用patch下载patch文件到当前文件夹,保持环境文件和线上一致,然后git apply -v xxx.patchrm -rf xxx.patch touch .gitignorevi .gitign

git diff命令详解

diff里面a表示前面那个变量,b表示第二个变量 HEAD     commit版本Index     staged版本 a.查看尚未暂存的文件更新了哪些部分,不加参数直接输入    git diff此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异也就是修改之后还没有暂存起来的变化内容. b.查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异    git diff --cached    git diff --staged显示

git diff odt文件

odt文件其实由若干文本文件组成,git 经过一些配置是可以支持diff的. step 1: 在git项目中i添加.gitattributes文件, 内容如下: *.odt diff=odt step 2: 在.git/config文件中添加下面一段: [diff "odt"] binary = true textconv = /usr/local/bin/odt-to-txt step 3: 创建/usr/local/bin/odt-to-txt文件,并添加内容如下: #! /usr