2011-11-08 39 views

回答

26

如果这是你最近的藏匿处,git diff stash@{0}将做到这一点。如果没有,您可以使用git stash list来获取您想要比较哪个藏品的索引。

+1

我试过了。 –

+0

并没有工作?你期待什么,你得到了什么? – Andy

+0

我只藏了几个文件。 'git diff stash @ {0}'结果显示页面和页面的diff结果。我期望只有一个页面的差异是关于被隐藏的文件。但差异结果显示了我对文件的差异,我没有隐藏。 –

6

如果您的工作树很脏,您可以通过首先提交脏工作树,然后将其与存储进行比较,将其与存储进行比较。之后,您可能希望取消工作树的提交(以保持历史记录清洁)。

  • 提交你的脏工作树:

    git add . 
    git commit -m "Dirty commit" 
    
  • DIFF与犯藏匿:

    git diff [email protected]{0} 
    
  • 然后,然后,您可以还原的承诺,并把它放回去在工作目录中:

    git reset --soft HEAD~1 
    git reset . 
    

现在,您已将脏兮兮的工作树与您的藏匿区分开,并回到最初的位置。

14

我认为OP想要的答案是看看有什么区别的隐藏包含除工作副本中存在的文件。

以下命令显示了包含的内容。

git stash show -p [email protected]{0} 
+1

@ Downvoter - downvote的任何理由? – niksvp

2

如果没有提交或存储工作副本,就无法做到这一点。积攒可能是低风险:

git add -A     # Stage all changes in your working copy. 
git stash save --keep-index # Stash your working copy and leave it intact 
git diff [email protected]{0} [email protected]{1} 

为了摆脱你只是版本比较的缘故作出藏匿,使用git stash popgit stash drop [email protected]{0}

如果您想使用提交,请参阅@Magne's answer

0

您可以结合使用Unix 差异命令有两个Git命令,就像这样:

diff <(git diff) <(git stash show -p [email protected]{0}) 

当然你也可以改变藏匿@ {0}到任何你想要的藏匿处。 该命令实际上是将实际工作目录(git diff)与其中一个窗口进行比较。

UPDATE

您还可以安装colordiff,看到很多更好的结果:

安装:

  • 的Ubuntu/Debian的:命令和apt-get安装colordiff
  • OS X:brew install colordiff

,然后只需更改命令:

colordiff <(git diff) <(git stash show -p [email protected]{0}) 
相关问题