【发布时间】:2022-01-04 20:46:04
【问题描述】:
是否可以使用 Git 检索当前索引中暂存文件的内容?问题是,如果我访问磁盘上的源,我会得到随 blob 返回的未暂存更改。
我正在尝试创建一个 git 预提交挂钩,以便在将更改提交到 Git 存储库时使用校验和更新文件。到目前为止,我设法用git ls-files 列出了所有跟踪的文件,并用git diff --cached --name-only 2>&1 列出了提交中暂存的所有文件。
我正在寻找类似git show-raw-contents --cached --file="path/to/tracked.file" 的东西(是的,我只是编造的)
本周,Google、Stack Overflow 和 Git 文档不是我的朋友。预提交挂钩支持的命令会很棒。但是 post-commit 也同样有效。
【问题讨论】:
-
在您的情况下,它看起来像
git show @:path/to/tracked.file,其中@是当前负责人。 -
@fluffy 我不确定这是否适用于在预提交期间提交的暂存文件。我会尝试
git show @:path/to/tracked.file,但这只会在提交后起作用,是吗? -
索引似乎没有明确的前缀stackoverflow.com/questions/5032188/…:
git show :/path/to/tracked.file。 -
@tim 有人刚刚重新打开了这个问题。顺便说一句,问题询问如何“获取已提交文件的内容”,因此它是另一个问题的 exact dupe。然后在 cmets 中澄清说,它是关于获取索引中文件的内容,而不是提交文件的内容。随时更新问题以反映这一点并提供答案
标签: git githooks pre-commit-hook post-commit-hook