检出后挂钩可以检查是否已检出单个文件吗?

时间:2018-06-19 16:58:08

标签: git githooks post-checkout-hook

我正在编写一个检出后挂钩,但是我希望避免在满足某些条件的情况下运行它,其中之一是在检出单个触摸文件时执行。例如,如果我运行git checkout somebranch,我希望它可以运行,但是如果我只想运行git checkout -- some/touched/file,则可以避免它运行。

据我所知,post-checkout脚本仅通过了之前和之后签出的提交哈希,还有一些其他数据可从git repo的全局状态中抓取,但我不确定检查是否只是被检出的单个文件。

这有可能吗?如果可以,怎么办?

1 个答案:

答案 0 :(得分:1)

post-checkout hook的第三个参数对于分支签出是1,对于文件签出是0,但是无法了解刚刚签出的文件。

我想到的唯一方法是-扫描整个工作树并收集修改日期非常接近当前时间(几秒钟之内)的文件。