git diff 命令
git diff 命令是用来比较显示 git 各版本之间文件不同的命令。
git diff (不带参数)
git diff 比较显示暂存区 (staging area) 与工作区 (working area) 文件的不同
git diff master
比较显示 master 分支与工作区文件的不同
git diff HEAD
比较显示 HEAD 指向的内容与工作区文件的不同
git diff refs/remotes/origin/master
比较显示 master 分支与当前工作区文件的不同
比较 master 分支的历史提交版本与工作区
git diff 0c5ee16a6a4c849d0ae0448caa8ff174399c7c3c ./header.html
上面的命令中, diff 后面的参数指的是 commit id , ./header.html 是要比较的文件路径。
git diff 命令输出格式
---代表源文件+++代表目标文件
通常工作区的文件都被当作目标文件看待。
-开头的行,是只出现在源文件中的行+开头的行,是只出现在目标文件中的行- 空格开头的行,是源文件和目标文件中都出现的行
- 差异按照差异小结进行组织,每个差异小结的第一行都是定位语句,由@@开头,@@结尾。
1 | $ git diff |
上面的 git diff 结果说明:
- 文件之前的某个提交是源文件,当前工作区的该文件是目标文件
- 在源文件第85行开始的7行和目标文件第85行开始的7行构成一个差异小结
- 这个差异小结中,目标文件添加了一行
new webpack.BannerPlugin("Copyright by hushiking@github.com."), - 其他空格开头的行表明没有差异