以release分支为例,我们公司所有需要发布的分支,必须以release结尾。 实际效果:
jenkins配置: 为下一步获取当前的打包分支做准备。
具体看代码注释吧:
git remote prune origin # 删除远程无用分支, 避免干扰
all=`git branch -r|grep "release"` # 获取所有release分支,你也可以将release改为其他。
arr=(${all// /}) # 将字符串all变为数组arr
length=${#arr[@]} # 获取arr的长度
echo "-----------------看这里!!!!!检查代码漏合---开始------------------------------------------"
for ((i=0; i<$length; i++)); do #循环开始
#在arr[i]分支上,但不再release分支上的代码;${branch}为jenkins配置的参数
diff=`git log ${arr[i]} --not ${branch}`
if [ ${#diff} -gt 0 ] # 如果有漏合的代码,此处diff大于0,无则为0.
then
echo "分支 ${arr[i]} 仍有未合并的代码!!!" # 提醒
fi
done
echo "--------------------------检查代码漏合---结束-----------------------------------------------"