【问题标题】:Git command to retrieve contents of staged file?Git命令检索暂存文件的内容?
【发布时间】: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


【解决方案1】:

问题的答案是

git cat-file blob :path/to/tracked.file 2>&1

适用于 pre-commit 和 post-commit 钩子。

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 2019-05-06
    • 2011-04-12
    • 2014-02-16
    • 2016-02-10
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 2021-07-23
    相关资源
    最近更新 更多