博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【git】之使用shell脚本提交代码
阅读量:5066 次
发布时间:2019-06-12

本文共 3403 字,大约阅读时间需要 11 分钟。

为减少提交步骤,防止提交错误,使用Shell脚本进行git提交不失一件好事

#!/bin/sh# @author Hubal  # @Email Hubal@123.com# @createBy 2018-11-30# Shell脚本提交git代码 简单,快速,高效# author = Hubalecho ' >>>>>> start push <<<<<< '  echo " ====== 当前分支 ====== "  branch= git branchecho $branch # 判断参数1是否包含参数2contains_str(){    # echo " >>> $1 <<< "    # echo " <<< $2"        contains_result=$(echo $1 | grep "${2}")    if [[ -n $contains_result  ]] ; then          return 1      else          return 0         fi    }git_add(){    echo ">>>>>> 执行 git add 之前,本地文件状态如下 <<<<<<"    git status     statusResult=$(git status)    no_change="nothing to commit"    contains_str "$statusResult" "$no_change"    if [[ $? == 1 ]]; then        echo "=== 当前没有新增或者修改的文件 ==="        git_push        exit    fi    read -p "是否确定add?Y|N : " add_params    if [[ $add_params == "Y" || $add_params == "y" ]]; then             git add .    else         exit     fi     }git_commit(){     echo ">>>>>> 执行 git commit 之前,本地文件状态如下 <<<<<<"     git status      read -p "是否确定commit?Y|N : " commit_params     if [[ $commit_params == "Y" || $commit_params == "y" ]] ; then             read -p "请输入commit信息: " commit_msg             if [ -z $commit_msg  ] ; then                  git commit -m "git commit by $author" .             else                 git commit -m $commit_msg .                 fi     elif [[ $commit_params == "N" || $commit_params == "n" ]] ; then           exit      else          exit         fi}git_push(){    echo ">>>>>> 执行 git push 之前,本地文件状态如下 <<<<<<"    git status     current_branch=$(git symbolic-ref --short -q HEAD)     echo ">>>>>> 当前分支:$current_branch <<<<<<"    read -p "是否确定push?Y|N : " push_confirm    if [[ $push_confirm != "Y" &&  $push_confirm != "y" ]]; then        echo ">>>>>> end push <<<<<<"        exit    fi    read -p "请输入远程git地址别名,默认是origin: " origin_params     echo -e "\n"    read -p "请输入远程分支名称,默认是当前分支: " branch_params    push_result="";    if [[ -z $origin_params && -z $branch_params ]]; then        echo ">>>>>> push origin $current_branch"        sleep 5         git push origin $current_branch     elif [[ -n $origin_params && -n $branch_params ]]; then        echo ">>>>>> push $origin_params $branch_params"        sleep 5         git push $origin_params $branch_params    elif [[ -z $origin_params && -n $branch_params  ]]; then        echo ">>>>>> push origin $branch_params"        sleep 5         git push origin $branch_params    elif [[ -n $origin_params && -z $branch_params  ]]; then        echo ">>>>>> push $origin_params $current_branch"        sleep 5         git push $origin_params $current_branch        else        echo ">>>>>> end push <<<<<<"        fi    }read -p "默认push当前分支,Q代表quit,其他单词代表切换分支 : " branchif [[ $branch == "Y" || $branch == "y" || -z $branch ]] ; then         # echo  "你输入的是:  $branch "        statusResult=$(git status)        to_commit="Changes to be committed"        contains_str "$statusResult" "$to_commit"        if [[ $? != 1 ]]; then            git_add;        else             git add .             echo " ====== 本地没有需要add的文件,直接commit ====== "        fi        git_commit;        git_push;        exit;elif [[ $branch == "Q" || $branch == "q" ]] ; then        # echo "你输入的是: $branch ,代表退出当前操作!"         exit else      git checkout $branch    echo -e "当前分支: \n $(git branch) "      git_add;    git_commit;    git_push;    exit;fi

 

转载于:https://www.cnblogs.com/gyjx2016/p/10058209.html

你可能感兴趣的文章
公网IP和私有IP的区别和用途
查看>>
在一台win10上启动多个mysql
查看>>
TensorFlow 从零到helloWorld
查看>>
@class、#import
查看>>
iOS 正则表达式使用的三种方式&语法
查看>>
kafka的使用
查看>>
AT2672 Coins
查看>>
团队计划会议-01
查看>>
Linux0.11内核--加载可执行二进制文件之1.copy_strings
查看>>
编写Nginx启停服务脚本
查看>>
这些老外的开源技术养活了很多国产软件
查看>>
看图软件推荐
查看>>
【IdentityServer4文档】- 欢迎来到 IdentityServer4
查看>>
安全测试的一些漏洞和测试方法
查看>>
spring框架学习笔记(八)
查看>>
vim格式化代码
查看>>
探索 ConcurrentHashMap 高并发性的实现机制
查看>>
Web服务器超时处理
查看>>
keil C 51 strlen库函数使用
查看>>
JS取得绝对路径
查看>>