将一个暂存的文件与一个存储文件区分开来

时间:2012-05-21 14:57:01

标签: git git-diff git-stash git-stage

是否存在用于比较git存储文件的--staged(aka --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 个答案:

答案 0 :(得分:3)

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

...可能不需要引号,但你永远不知道你的shell会如何让你感到惊讶。

答案 1 :(得分:0)

  

:<n>:<path>, e.g. :0:README, :README

     

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

来自git help rev-parse