如何在用户推送到远程git仓库时执行某些操作

时间:2014-08-08 19:13:07

标签: c# git libgit2sharp

我有一个用户可以“部署”数据的服务,但是现在他们必须在进行更新后手动执行部署。当他们推送到该服务可以访问的远程git仓库时,我想自动执行此操作。让我们说用户在他们的本地仓库中做了以下事情:

git remote add AutoUpdater <whatever the URL is>

然后他们对当地的东西进行任何更新,并将他们的提交推送到这个远程仓库:

git add .
git commit -m "version x.x.x"
git push AutoUpdater master

如何检查此AutoUpdater回购以查看用户何时推送更改并知道何时采取措施?我更喜欢使用C#,这意味着我可能最终会使用LibGit2Sharp。

1 个答案:

答案 0 :(得分:1)

git提供了一系列钩子,这些钩子在接收侧的推动过程的不同阶段运行。这些可以是任何类型的可执行文件,并获取有关正在更新的内容的信息。这是git为事件做出反应的唯一方法。

您可以通过git help hookshttp://git-scm.com/docs/githooks查看关于挂钩的说明。为了对更新做出反应,您可能需要&#34;更新后&#34;或&#34;收到后#34;钩子,取决于你一次想要多少数据。

我建议使用这种方式轮询参考列表,如果你要从外部观察存储库(通过libgit2sharp或git或其他任何东西),这就是你不得不求助的。