将更改拉入空存储库时,会调用哪个Git钩子?

将更改拉入空存储库时,会调用哪个Git钩子?,git,automation,githooks,Git,Automation,Githooks,我试图了解如何使用Git本地钩子 我的目标是将分支的当前状态与收到的更新进行比较,然后在某个文件发生更改时执行一些shell命令 我正在使用git diff tree命令来获得差异 我对post-checkouthook没有问题。据我所知,post checkouthook在克隆存储库或切换分支时调用。我需要它只是为了克隆,而且效果很好 但是只有当存储库已经包含一些文件时才会触发post mergehook。如果我克隆一个空的存储库,然后将一些文件推送到源文件,并将更改拉入克隆的存储库,那么钩子

我试图了解如何使用Git本地钩子

我的目标是将分支的当前状态与收到的更新进行比较,然后在某个文件发生更改时执行一些shell命令

我正在使用
git diff tree
命令来获得差异

我对
post-checkout
hook没有问题。据我所知,
post checkout
hook在克隆存储库或切换分支时调用。我需要它只是为了克隆,而且效果很好

但是只有当存储库已经包含一些文件时才会触发
post merge
hook。如果我克隆一个空的存储库,然后将一些文件推送到源文件,并将更改拉入克隆的存储库,那么钩子将被忽略

但我事先不知道克隆的存储库是空的还是包含一些文件,所以我需要处理这两种情况


是否有一个特定的Git钩子可以在将更改拉入空存储库时工作,或者我应该以其他方式处理该问题?

在Git 2.28及更高版本中有新的引用事务钩子;如果创建、删除或更新了至少一个引用名称(分支名称、标记名称等),则将调用这些名称。@谢谢,但这似乎不是我需要的。Topic starter正在寻找一种无论存储库中的更改如何都能工作的解决方案,而答案中不包含任何解决方案。@torek谢谢。我用Git2.28尝试了
reference transaction
hook,当我将更改下载到一个空的存储库时,它会被触发。不幸的是,我找不到任何使用这个钩子的例子,但我会尝试使用它。@ivanov17“…答案不包含任何解决方案。”有时答案是“不可能”。