git命令_保存本地變更+拉取+合並代碼+推送代碼到遠程倉+添加CI觸發器變量


  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 commitMessage

echo "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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM