状态如下:
On branch howard
Your branch is up-to-date with 'origin/howard'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: thing.scala
(and other changed files)
如果我git diff --cached
,它会显示thing.scala
的内容以及其他差异。
但我有兴趣只看到已删除文件的内容。如何在git中这样做?
以下尝试不起作用:
git show HEAD~1 thing.scala
git diff --cached thing.scala
答案 0 :(得分:7)
git show HEAD~1 thing.scala
你所拥有的几乎是正确的,它只有两个小问题。
首先,由于您尚未提交,HEAD
指的是仍然具有thing.scala
文件的最后一个版本。 HEAD~1
是之前的版本。
其次,显示特定提交文件的语法是git show <commit>:<file>
。
git show HEAD:thing.scala
应该有用。
文档在gitrevisions中提到了这种语法:
&lt; rev&gt;:&lt; path&gt;,例如HEAD:README,:README,master:./ README
后缀:后跟一个路径,命名由冒号前部分命名的树形对象中给定路径的blob或树。 :path (在冒号前面有一个空部分)是下面描述的语法的特例:在给定路径的索引中记录的内容。以 ./ 或 ../ 开头的路径是相对于当前工作目录的。给定路径将转换为相对于工作树的根目录。这对于从与工作树具有相同树结构的提交或树中寻址blob或树非常有用。
对于git diff --cached
:以下参数仅在文件名存在时才被解释为文件名。由于您删除了该文件,因此不适用。您可以使用--
:
git diff --cached -- thing.scala