如何使用git查看已暂存的文件?

9

我可以执行git show <some-commit>:path/to/some/file,但是我要用什么替换<some-commit>来获取文件的当前暂存版本?

背景:我正在编写一个pre-commit钩子,并且想在不使用储藏未暂存更改的情况下对已暂存文件运行检查。有更好的方法吗?

1个回答

14
使用git show :path/to/some/file命令查看文件。
"暂存"的文件表示文件的索引副本与某些其他副本不同,例如您可以通过HEAD:path/to/some/file访问的当前提交副本。
存储在索引中的文件有一个“阶段号”,通常为零。 (冲突合并期间使用阶段槽1、2和3)。
要引用名为F的文件的副本(在您的情况下F=path/to/some/file),请使用修订说明符:number:F。 在这种情况下,它是:0:path/to/some/file。 当数字为零时-通常是-可以省略一个冒号和零,只需保留:path/to/some/file
请注意,当git status未提及该文件时,它在索引中,只是:0:path/to/some/file具有与HEAD:path/to/some/file相同的数据。 如果根本不在索引中-没有暂存槽-git status将告诉您该文件被标记为删除。
(关于上下文:如果您有空间,我建议将每个阶段零索引文件git checkout-index到一个临时工作区。 要轻松测试所有索引文件是否处于零级,请使用git write-tree,如果任何文件在除零之外的暂存槽中,则此命令将失败。)

我知道这与冒号有关!只是我记得在出现冲突的情况下要注意...而不是没有冲突的情况。谢谢! - eftshift0
哦,原来如此简单。谢谢! - parched

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接