我说的才是对的
Topic sourcegit diff会查到工作区与版本的不同
若不同是工作区与暂存区的不同,会红字显示
若不同是暂存区与仓库分支的不同,会绿字显示
所以git diff可以同时完成上述两个功能。但若只想知道暂存区和仓库分支的不同,用git diff --cached即可
不知道楼上几位的git版本是多少,我这里ubuntu下git 2.7.4,win10上2.18.0,两个版本我都做了实验,结论如下:
如果是输入git diff
,查看到的是工作区和暂存区的不同,如果是git diff --cached
,查看到的是暂存区和HEAD的不同。
@大熊座尾说的红字、绿字显示,至少我这两个版本的git上是没有的。git status
才能分别看到红色、绿色的"modified"字样。
如果你想验证我说的,尝试如下操作:
mkdir -p /tmp/git-demo
cd /tmp/git-demo
git init .
echo "#include <stdio.h>" >> main.c
echo "this is the readme" >> readme.md
git add .
git commit -m "first commit"
echo "int main(){printf("hello\n"); return 0;}" >> main.c
echo "add a new line" >> readme.md
git add main.c
git diff
git diff --cached
我的是最新安装的2.19.1,你说得比较是对的,但我版本是有红绿显示,不过红色仅仅代表当前比较的被修改或被删除的行,绿色仅仅代表修改过或新增的行。并不是像楼上说的那样红绿代表不同区的比较显示。
- 1
joychine
git diff 是你工作区跟仓库(仓库也叫版本库)的比较,这个时候可以看你开发过程中修改了哪些内容 git diff --cached 是看你stge区和仓库分支上的比较,你add后但是没有commit, 这个时候只是在stage中,可以确认下修改是否正确,如果正确无误可以commit合并到分支