git-diff手册页说git diff用于
显示工作树与索引或树之间的更改,更改 索引和树之间,两棵树之间的变化,或变化 在磁盘上的两个文件之间。
但是,如果要显示HEAD之前的提交和工作目录之间的区别呢?这可能吗?
答案 0 :(得分:35)
是的,但这取决于您对“当前项目状态”的定义。 git diff的手册继续。
如果您有兴趣与分阶段更改进行比较:
git diff [--options] --cached [<commit>] [--] [<path>...]
此表单用于查看您为下一次提交相对于指定的
<commit>
暂存的更改。通常,您希望与最新提交进行比较,因此如果您不提供<commit>
,则默认为HEAD。如果HEAD不存在(例如未分支的分支)并且未给出<commit>
,则它显示所有分阶段的更改。--staged
是--cached
的同义词。
如果您有兴趣与未分期更改进行比较:
git diff [--options] <commit> [--] [<path>...]
此表单用于查看工作树中相对于命名
<commit>
的更改。您可以使用HEAD将其与最新提交进行比较,或使用分支名称与其他分支的提示进行比较。
或者如果您只想对任何两次提交感兴趣(一个可能是HEAD):
git diff [--options] <commit> <commit> [--] [<path>...]
这是为了查看两个任意
<commit>
之间的变化。
因此,您可能希望运行git diff someOldCommit HEAD
以查看someOldCommit
与当前HEAD之间的差异。
答案 1 :(得分:0)
这很简单:
git diff HEAD
说明:与上一次提交相比,工作目录中的当前更改。