Git Diff 格式分析

Posted 简单生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git Diff 格式分析相关的知识,希望对你有一定的参考价值。

 

参考:

http://stackoverflow.com/questions/2529441/how-to-read-the-output-from-git-diff

https://www.git-tower.com/learn/git/ebook/en/command-line/advanced-topics/diffs

http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html

 

就最不明白的一点:

23,7表示从23行开始的7行,但是明明只改了一行.

其他的那些行都是上下文,用来帮你理解更改位置的.

但是23行,是从erb:success开始,为什么diff后还多出了21行的get...

那还不如从21行开始呢,省了一行又有什么意义.

又看了看,chunk头后不换行是识别出了语言的方法名,这个看git能不能识别出语言.

至于为什么是23,7不是21,9就不管了.

 

1.git diff

不带任何参数的git diff,是暂存区与工作区相比较,旧的是暂存区

2.git diff head

将head和工作区相比,旧的是最新版本库

3.git diff --cached 或者--staged

head和暂存区相比,旧的是head

 

这样三个位置都互相比较完了,一般来说表的优先级从旧到新是head->暂存区->工作区.

 

4.git status -s

两个M,第一个M是版本库和暂存区对比,第二个M是暂存区和工作区对比.只要commit完了,版本库和暂存区内容一样,除非再次add

 

以上是关于Git Diff 格式分析的主要内容,如果未能解决你的问题,请参考以下文章

如何让 diff 像 git-diff 一样工作?

在 git-diff 的输出中着色空白

git diff 结果分析

JGit 中的 git diff 等价物

Git忽略文件(.ignore)以及git status,git diff,git rm命令

从精准化测试看ASM在Android中的强势插入-读懂diff