是否存在对git存储库的每次修改的挂钩?

时间:2013-05-31 01:12:54

标签: git notifications githooks

作为一个学习项目,我想制作一个git可视化工具,实时显示底层的git提交图。为此,我的可视化程序需要在每次图形更改时接收更新。

我知道git有许多命令的钩子。我的问题是:后XXXXX挂钩是否涵盖了可以更改git存储库的整个方式?

后续问题:流程是否有更好的方式以编程方式“监听”git repo?使用git钩子的缺点是我必须修改repo以便可视化它。理想情况下,我不必这样做。

1 个答案:

答案 0 :(得分:0)

虽然git命令行实用程序处理挂钩,但还有其他方法可以更改git对象存储。其中一些方法不一定处理钩子。

例如,非常受欢迎的git库libgit2目前为does not honor hooks。相当多的实用程序都使用了libgit2。

此外,即使在命令行中,也可以使用git commit -n来关闭挂钩。

换句话说,钩子不保证你会看到git对象存储的每一次更新。

让你注意变化的另一种方法可能只是观察分支指针。这应该是非常便宜的过程。您还可以在侦听分支文件更改时设置操作系统本机方法(例如Linux的inotify和Windows的FindFirstChangeNotification/WaitForMultipleObjects