Git Post-Commit Hook

时间:2015-06-24 13:47:44

标签: git rsync post-commit-hook

Git新手在这里。 我想要一个post commit钩子,在运行时会将最新的代码从存储库复制到新文件夹中的其他服务器。文件夹名称应该是我在git commit comment中写的。

这可能吗?

1 个答案:

答案 0 :(得分:0)

根据冥想,你不能确定你需要哪个钩子,我根据收件后挂钩发布了答案。这是一个服务器端挂钩,在推送后在服务器中收到所有内容后运行。后提交钩子是客户端的,并且会在每次提交后运行(有关git钩子的更多信息,请参阅https://git-scm.com/book/it/v2/Customizing-Git-Git-Hooks)。

假设有一个bash脚本,你可以使用:

MESSAGE=`git log -1 HEAD --pretty=format:%s`

检索最后一次提交消息,并从那里开始创建脚本。通过使用:

,还可以检索该推送中包含的每个提交消息
while read oldrev newrev ref
do
    MESSAGE=`git log -1 $newrev --pretty=format:%s`
    doSomethingElse...
done

至于将其复制到其他地方,你可以使用你在其他脚本中使用的任何东西,比如scp,rsync ......只需克隆/更新临时目录中的本地副本并将其同步到你的远程位置