git命令_儲存本地變更+拉取+合併程式碼+推送程式碼到遠端倉+新增CI觸發器變數
阿新 • • 發佈:2020-09-15
git命令提供一整套操作命令,但是如果一個一個操作的話有點麻煩,如果僅僅是正常的合併操作的話,那麼完全是沒有必要做那麼多操作的; 如果遇到了衝突,那麼提示我們修改就好了。
按照這個需求,寫了一套git操作命令:
echo "歡迎來到git流水線工廠!共10步" echo "1/10- 獲取當前GIT倉庫裡面當前分支名" branchName=`git symbolic-ref --short -q HEAD` ##獲取當前分支名 echo "當前分支名稱: $branchName" echo "2/10- 請輸入本次提交GIT倉庫的說明資訊(fix,refactor):" read commitMessageecho "3/10- 請選擇要釋出的物件:" echo "1-shop" echo "2-sso" echo "3-全部(shop,sso,crm)" echo "其他=1" read ciPosition ciName="shop" if [ -z "$ciPosition" ]; then ciName="shop" elif [ "$ciPosition" == "2" ]; then ciName="sso" elif [ "$ciPosition" == "3" ]; then ciName="帥哥" else ciName="shop" fi echo"您選擇要執行CI釋出的物件為:$ciName" echo "4/10- 正在執行:將本地修改的內容提交到本地GIT擱置區..." git stash echo "5/10- 正在執行:拉取GIT遠端倉庫程式碼..." git pull origin $branchName echo "6/10- 正在執行:將本地GIT擱置區裡最新修改的內容還原到本地GIT未暫存區..." git stash pop echo "7/10- 正在執行:檢查合併程式碼是否存在衝突..." #如果你修改本檔案,請手動提交 chongtu=`git diff dev | grep "<<<"` if [ -n "$chongtu" ]; then echo -e "\033[31m 合併程式碼存在衝突!!! 請手動合併後再試... \033[0m" else echo "合併程式碼衝突檢查結果:正常..." echo "8/10- 將本地GIT未暫存區最新修改的內容提交到本地GIT暫存區..." git add . echo "9/10- 正在執行:將本地GIT暫存區最新修改的內容提交到本地GIT倉庫..." git commit -m "$commitMessage" echo "10/10- 正在執行:將本地GIT倉庫最新修改的內容推送到遠端GIT倉庫,同時執行GitLab CI/CD自動化操作..." git push -o ci.variable="MESHOP_BUILD_ONLY=$ciName" origin $branchName # echo 8- 正在執行:清除本地GIT擱置區裡所有內容(流程執行有問題)... # git stash clear echo -e "\033[32m 這一波GIT騷操作全部已完整... \033[0m" fi read -p "請按任意鍵退出!" -n 1