首页 > 解决方案 > 将更改拉入空存储库时会调用什么 Git 挂钩?

问题描述

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

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

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

post-checkout我对钩子没有任何问题。据我了解,post-checkout钩子在克隆存储库或切换分支时调用。我只需要它来克隆,它工作正常。

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

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

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

标签: gitautomationgithooks

解决方案


推荐阅读