sh 脚本查找对应Git分支
由于每一个版本测试分支 在测试之后会被删除 然后再次测试下一个版本的时候又会生成不同的分支名称 列如 : release_年月日_xxx
导致每次都要修改部署的脚本
有没有什么方法 能减少这个修改呢
方法 :1 将分支名称做为一个参数传进去 (这个方法由于每次重启都要输入分支名 麻烦)
方法2 : 遍历线上的分支 模糊匹配到该分支 再编译
贴代码
CODE_PATH= 项目所在位置路径替换此处 echo "开始拉取最新代码....................................." #首先进行编译 cd ${CODE_PATH} echo " 拉取线上分支并同步到本地----------------" git remote update origin --prune #遍历git下所有分支 echo "遍历$project_path下所有项目的所有分支"
all_branchs=`git branch -a`;
max_day=0
echo $max_day
#循环找到规则中日期最大的那个
for branch in $all_branchs;
do
branch_simple_name=`echo $branch | grep '/' | cut -d '/' -f3`
echo $branch_simple_name
if [[ $branch_simple_name == release* ]];
then
echo "=========循环找到规则中日期最大的那个开始==========="
echo $branch_simple_name
#release-20220323-v1.0.0
#从左边第几个字符开始,及字符的个数
echo ${branch_simple_name:8:8}
if [ $max_day -eq 0 ]
then echo "$1>$2"
max_day=${branch_simple_name:8:8}
fi
if [ $max_day -gt ${branch_simple_name:8:8} ]
then
max_day=max_day
else max_day=${branch_simple_name:8:8}
fi
echo $max_day
echo "========循环找到规则中日期最大的那个结束============"
fi;
done;
echo "===================找到的最大日期========================"
echo $max_day
for branch in $all_branchs;
do
branch_simple_name=`echo $branch | grep '/' | cut -d '/' -f3`
echo $branch_simple_name
if [[ $branch_simple_name == release* ]];
then
#echo "===================="
echo $branch_simple_name
if [ $max_day -eq ${branch_simple_name:8:8} ]
then
echo "=========找到的最大的日期分支为=============="
#echo $branch_simple_name
git pull origin $branch_simple_name
echo "开始编译..........................................."
mvn clean package -Dmaven.test.skip=true
echo "打包完成....................................."
echo $branch_simple_name
fi
#echo "===================="
fi;
done;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理