1. 下载脚本: post-receive
根据原版修改的一个发送脚本: http://download.csdn.net/detail/joans123/5686621
获取git项目下config文件中的内容:
收件人列表: recipients=$(git config hooks.mailinglist)
里程碑收件人列表, 不是必须的: tagrecipients=$(git config hooks.tagmailinglist)
邮件标题前缀: emailprefix=$(git config hooks.emailprefix || echo '[GIT] ')
邮件标题项目: projectdesc=$(git config hooks.projectdesc || echo '[UNKNOWN]')
git执行发送邮件脚本时会输入三个参数:
*) oldrev : 旧版本号, 一般为SHA值缩写
*) newrev : 新版本号.
*) refname : 引用名称. 引用名称一般是指此次操作的版本名称. 有如下指:
refs/tags/* (里程碑版本), refs/heads/* (分支版本), refs/remote/* (远程版本).
根据引用类型以及版本操作可分为: refname_type = tag(提交到指定tag) | annotated tag (创建一个tag) | branch (提交到分支)
oldrev 和 newrev 之间可能跨越多个版本号, 也就是一次行提交多个commit. 可以通过rev-list命令获取所有版本:
git rev-l