一个 post-checkout 钩子能够检查一个文件是否被检出吗?

5 浏览
0 Comments

一个 post-checkout 钩子能够检查一个文件是否被检出吗?

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

据我所知,post-checkout 脚本只传递了先前和检出后的提交哈希,还可以从 git 仓库的全局状态中获取一些附加数据,但我不确定要检查什么来确定是否只有一个文件被检出。

这真的可能吗?如果是的话,如何做到?

0
0 Comments

在post-checkout hook中,第三个参数为1表示分支切换,为0表示文件切换,但是没有办法知道刚刚被检出的文件是哪些。

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

在这个脚本中,只要知道检出是文件检出还是分支检出即可,但非常感谢你提出了如何确定正在检出的文件的建议!

0