我正在为写一个post-commit钩子git。我想知道最新提交是否更改了特定目录中的任何文件。如果有任何更改,我可以继续并调用一些昂贵的代码,否则我可以跳过它。
# get last commit hash prepended with @ (i.e. @8a323d0)
function parse_git_hash() {
git rev-parse --short HEAD 2> /dev/null | sed "s/\(.*\)/@\1/"
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要确定指定目录是否有任何更改。但是我不确定该怎么做。我已经看了,用打git-log和git-show,但没有成功为止。
所以,我需要做这样的事情。
if [directory-changed()] {
echo "start expensive operation"
}
Run Code Online (Sandbox Code Playgroud)
这实际上使我进入了其中:实际上,它捕获了最后一次提交而不是指定的提交。
git log -U a79851b -1 my/directory/path
Run Code Online (Sandbox Code Playgroud)
提前致谢。