访问预提交挂钩中的暂存文件列表

问题描述

我有一个预提交挂钩,可以在提交时提高软件版本。但是,当仅更新 CHANGELOG.md 时,我想跳过此功能。我试过了:

diffs="$(git diff --name-only)"
if [[ $diffs == "CHANGELOG.md" ]]
then
    # echo 'no bump'
else
    # echo 'bump'
    # code that bumps the version
fi

但经过一些检查,即使 diffs 已上演,CHANGELOG.md 变量实际上也是空白的。所以它总是评估 else 语句。我想知道是否可以在钩子中以某种方式访问​​差异。

解决方法

@JBallin 的评论解决了我的问题。应使用 --cached--staged,因此代码必须更改为:

diffs="$(git diff --name-only --cached)"
if [[ $diffs == "CHANGELOG.md" ]]
then
    # echo 'no bump'
else
    # echo 'bump'
    # code that bumps the version
fi