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

use*_*621 36 git bash

在阅读Git pre-commit hook:更改/添加文件后,出现以下问题:

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

例:

echo "foo" >> file
git add file
echo "bar" >> file
Run Code Online (Sandbox Code Playgroud)

通缉输出:

[previous contents of file]
foo
Run Code Online (Sandbox Code Playgroud)

gra*_*ity 99

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

git show :file
Run Code Online (Sandbox Code Playgroud)

gitrevisions(强调我的):

<rev>:<path>, e.g. HEAD:README, :README, master:./README
Run Code Online (Sandbox Code Playgroud)

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

  • @ Pumbaa80:`git show":$(git rev-parse --show-prefix)文件"` (2认同)

Mar*_*air 6

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

这个食谱来自于jleedev对另一个问题的回答:

git cat-file blob $(git ls-files -s file | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)

如果你经常使用它,你可能想为它创建一个git别名.

  • 注意,`cat-file`也接受`:file`. (3认同)