Github自动提交代码脚本 
该脚本用于自动提交代码到github的仓库上。主要分为几种情况。
自动提交代码脚本给博客仓库 
我的博客本质上是前端vuepress项目,博客仓库分为源代码仓库和博客页面仓库。一个存放源码,一个存放源码打包生成的静态页面。
bash
# 该脚本主要分两个部分。
# 第一个部分: 提交代码到博客源代码仓库 https://github.com/suichentree/suichenblog.git
# 第一个部分: 将源代码打包运行,生成博客页面代码后。将页面代码提交到博客页面仓库 https://github.com/suichentree/suichentree.github.io.git
# 注意1: 在git终端中运行脚本。
# 注意2: 使用 source push.sh 命令运行该文件。bash push.sh 命令无法执行脚本中的cd命令,source命令可以。
# 定义commit方法
function commit() {
    #定义变量commitMessage,并接受外部输入赋值
    read -p "输入commitMessage: " commitMessage 
    echo "commitMessage is  $commitMessage"
    #将暂存区的文件提交到本地分支中
    git commit -m $commitMessage
}
# 定义push方法
function push(){
    # 本地分支强制推送最新文件到远程分支
    git push -f origin master
    # $?可以获取git push -f origin master命令是否运行成功,成功返回0,否则非0。
    if [ $? -eq 0 ] 
    then
        # 上传成功,方法结束
        echo "SUCCESS , git push success"
    else     
        # 上传失败,重新执行上传命令
        echo "ERROR , git push fail"
        # 延迟5秒
        sleep 5s
        # 重新执行push方法
        echo "Push Code to Remote Repository Again -------------------"
        push
    fi
}
# 脚本从这里开始--------------
echo "Start Run push.sh -------------------"
# 第一部分 start--------------------------
echo "Start Run Part1 -------------------"
# 将所有变动文件添加到暂存区
git add -A
# 检查是否有文件需要提交
check_commit=`git status`
if [[ $check_commit =~ "Changes to be committed:" ]] 
then 
    # 还有文件要提交
    echo "YES,some file need commit."
    # 执行提交方法
    commit
else     
    # 没有文件需要提交
    echo "NO, no file need commit"
fi
# 执行push方法
push
# 第二部分 start--------------------------
echo "Start Run Part2 -------------------"
# 生成博客静态文件
npm run build
# 进入生成的文件夹
cd public
# 初始化为git仓库
git init
# 添加到暂存区
git add -A
# 获取当前时间
time3=$(date "+%Y-%m-%d %H:%M:%S")
# 提交到本地分支
git commit -m "deploy blog $time3"
# 添加远程库地址
git remote add origin https://github.com/suichentree/suichentree.github.io.git
# 执行push方法
push
# 回到上级目录中
cd ..
# 脚本从这里结束--------------
echo "push.sh run finish -------------------"