阅读Git pre-commit hook : changed/added files后,出现了以下问题:
鉴于我有一个包含分阶段和非分阶段更改的文件,如何在分段后显示文件内容的预览?
示例:
echo "foo" >> file
git add file
echo "bar" >> file
通缉输出:
[previous contents of file]
foo
答案 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
选项就是您想要的。