如何git显示暂存文件



我可以执行git show <some-commit>:path/to/some/file,但如何替换<some-commit>以获得文件的当前暂存版本?

上下文:我正在编写一个预提交挂钩,我想对暂存文件进行检查,而不需要隐藏未暂存的更改。有更好的方法吗?

使用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,如果有任何文件位于零以外的暂存槽中,则会失败。(

相关内容

  • 没有找到相关文章

最新更新