将已暂存的文件与存储区中的文件进行差异比较。

3
有没有针对从 git stash 中比较文件的 --staged(又名 --cached)选项?
这里我正在将最近的提交与暂存文件进行比较(我使用了显式的@{}语法,但我知道可以推断出@{0}):
git diff stash@{0}:spec/blueprints.rb HEAD:spec/blueprints.rb

这里我正在比较存储的文件和磁盘上的文件:

git diff stash@{0}:spec/blueprints.rb spec/blueprints.rb

我该如何比较当前暂存区和存储区的内容?下面这个命令不起作用:
git diff --staged stash@{0}:spec/blueprints.rb spec/blueprints.rb
2个回答

5

git diff --cached 'stash@{0}' -- spec/blueprints.rb

可能不需要引号,但你永远不知道你的shell会给你带来什么惊喜。


0

:<n>:<path>, 例如::0:README,:README

冒号,可选地跟着一个阶段号码(0到3)和一个冒号,后面跟着一个路径,命名了索引中给定路径下的blob对象。缺少阶段号码(及其后面的冒号)将命名一个阶段0条目。在合并期间,阶段1是共同祖先,阶段2是目标分支的版本(通常是当前分支),阶段3是正在合并的分支的版本。

来自 git help rev-parse


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接