SourceTree自动拉取提交GIT代码 + shell脚本

 SourceTree自动拉取提交GIT代码

 

 

 www&api_pull&push_restore.sh

复制代码
 1 echo "欢迎使用 GIT 流水线操作!共10步"
 2 
 3 echo "0/10- 正在执行:清除本地GIT搁置区里所有内容..."
 4 git stash clear
 5     
 6 echo "1/10- 正在执行:获取当前GIT仓库里面当前分支名"
 7 branchName=`git symbolic-ref --short -q HEAD` ##获取当前分支名
 8 
 9 echo -e "\033[43;35m    当前GIT分支名称: $branchName \033[0m"
10 
11 echo "2/10- 正在执行:请输入本次提交GIT仓库的说明信息(默认追加fix标记):"
12 read commitMessage
13 commitMessage="fix: $commitMessage"
14 
15 echo "3/10- 使用CI管道发布的对象,请输入下面其中一个数字:"
16 echo "    1-shop"
17 echo "    2-sso"
18 echo "    3-shop&sso(shop,sso)"
19 echo "    4-全部(shop,sso,crm)"
20 echo "    默认不写,表示不使用CI管道发布对象"
21 
22 read ciPosition
23 ciName=""
24 
25 if [ "$ciPosition" == "1" ]; then
26     ciName="shop"
27 elif [ "$ciPosition" == "2" ]; then
28     ciName="sso"
29 elif [ "$ciPosition" == "3" ]; then
30     ciName="shop,sso"
31 elif [ "$ciPosition" == "4" ]; then
32     ciName="王云鹏是帅哥"
33 fi
34 
35 echo -e "\033[43;35m    您选择要执行CI发布的对象为:$ciName \033[0m"
36 
37 echo "4/10- 正在执行:将本地修改的内容提交到本地GIT搁置区..."
38 git stash
39 
40 echo "5/10- 正在执行:拉取GIT远程仓库代码..."
41 git pull origin $branchName
42 
43 echo "6/10- 正在执行:将本地GIT搁置区里最新修改的内容还原到本地GIT未暂存区..."
44 git stash pop
45 
46 echo "7/10- 正在执行:检查合并代码是否存在冲突..."
47 #如果你修改本文件,请手动提交
48 chongtu=`git diff dev | grep "<<<"`
49 
50 if [ -n "$chongtu" ]; then
51     echo -e "\033[5m    合并代码存在冲突!!! 请手动合并后再尝试... \033[0m"
52 else
53     echo -e "\033[43;35m    合并代码冲突检查结果:正常... \033[0m"
54     
55     echo "8/10- 正在执行:将本地GIT未暂存区最新修改的内容提交到本地GIT暂存区..."
56     git add .
57 
58     echo "9/10- 正在执行:将本地GIT暂存区最新修改的内容提交到本地GIT仓库..."
59     git commit -m "$commitMessage"
60 
61     if [ -n "$ciName" ]; then
62         echo "10/10- 正在执行:将本地GIT仓库最新修改的内容推送到远程GIT仓库,同时执行CI管道发布对象..."
63         git push -o ci.variable="MESHOP_BUILD_ONLY=$ciName" origin $branchName
64     else
65         echo "10/10- 正在执行:将本地GIT仓库最新修改的内容推送到远程GIT仓库..."
66         git push origin $branchName
67     fi
68     
69     echo -e "\033[32m    这一波GIT骚操作全部已完成... \033[0m"
70 fi
71 
72 read -p "    请按任意键退出!" -n 1
www&api_pull&push_restore.sh
复制代码

 
posted @   —八戒—  阅读(1487)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示