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
