我有一个 git 存储库,它有一个docs
目录,我在其中保存标记文件,这些文件记录了我正在处理的事情(例如,我有一个名为setup_git_server.mdown
)。我从我自己的运行 gitolite 的网络服务器推送和拉取存储库(和其他)。
我想要发生的是,每当我将提交推送到服务器时,它会自动将降价文件转换为 HTML 并将它们复制到服务器上的一个目录,Apache 可以在该目录中为它们提供服务。
最好的方法是什么?
您需要在托管存储库的服务器上设置一个 git 挂钩。挂钩只会在安装它的机器上运行。钩子本身不是签入代码库的一部分。例如,您在本地计算机上的任何提交后挂钩都不会在服务器上推送或执行。检查我们的代码库的其他人不会得到你的钩子。
如果您希望服务器在收到推送时采取行动,您应该创建一个 post-receive 挂钩。挂钩可以是任何可执行文件。在您的情况下,您可能希望将您的存储库克隆到临时目录,提取降价文件,并将其发布到您的 Web 服务器。
我不确定 gitolite 是否相同,但在 gitosis 中,hooks 目录位于每个托管存储库的顶层。将您的 post-receive 挂钩放在该目录中。
在您的 .git 目录中查找名为“hooks”的子目录。您会在其中找到响应各种事件的示例 shell 脚本。选择一个,例如post-commit并调整它以更新您的文档。
查看git hooks 以及它们是如何工作的,或者只是谷歌“git hooks”