Git新手在这里。 我想要一个post commit钩子,在运行时会将最新的代码从存储库复制到新文件夹中的其他服务器。文件夹名称应该是我在git commit comment中写的。
这可能吗?
答案 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 ......只需克隆/更新临时目录中的本地副本并将其同步到你的远程位置