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