深入学习ing

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

 

 

posted on 2020-09-15 19:32  深入学习ing  阅读(927)  评论(0编辑  收藏  举报

导航