Git:显示提交后的文件内容

时间:2011-03-01 10:25:01

标签: git bash

阅读Git pre-commit hook : changed/added files后,出现了以下问题:

鉴于我有一个包含分阶段和非分阶段更改的文件,如何在分段后显示文件内容的预览?

示例:

echo "foo" >> file
git add file
echo "bar" >> file

通缉输出:

[previous contents of file]
foo

4 个答案:

答案 0 :(得分:94)

使用:前缀访问当前索引中的对象(暂存但尚未提交)。

git show :file

gitrevisions(强调我的):

<rev>:<path>, e.g. HEAD:README, :README, master:./README
     

后缀:后跟一个路径,命名在冒号前的部分命名的树形对象中给定路径上的blob或树。 :path(在冒号前面有一个空白部分)是下面描述的语法的特例:在给定路径的索引中记录的内容

答案 1 :(得分:6)

更新:answer from grawity有一个更简洁的解决方案

此食谱来自jleedev's answer to another question

git cat-file blob $(git ls-files -s file | awk '{print $2}')

如果您经常使用它,可能需要为此创建git alias

答案 2 :(得分:0)

你可以做git diff --cached,但这不是你想要的。

git grep -h --cached ^ -- file

适合我。

答案 3 :(得分:-1)

请看一下这个问题的最佳答案:How do I show the changes which have been staged?

--cached选项就是您想要的。