参考:
http://*.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