publish-gh-pages.sh解读

这是一个用于自动化Jekyll网站构建并管理Git分支的bash脚本。它首先定义了一个执行命令的函数,然后检查并执行Jekyll构建。如果成功,脚本将切换到指定或默认的master分支,重写历史,只保留_site目录的内容,并推送到远程仓库。过程中涉及git操作如删除、创建分支,以及强制提交和推送。
摘要由CSDN通过智能技术生成

  我怕经过很长时间以后想要修改某些东西,需要修改下这个脚本,然而忘记了怎么做。所以,打算对这个脚本进行注释。

#!/bin/bash    //bash脚本必须有这个

//定义一个函数,下面用的都是这个
function exe_cmd() { 
    echo $1 //打印出命令
    eval $1 //执行这个命令
}

if [ $# -lt 1 ]; then    //如果没有参数,那么就打印用master分支
    echo "Usage: sh $0 master"
fi

branch=$1  //运行脚本第一个参数为要目标分支,如果没有就用master
if [ -z "$branch" ]; then
    branch='master'
fi

exe_cmd "jekyll build" //运行jekyll build编译
if [ ! -d '_site' ];then //如果没有_site文件夹
    echo "not content to be published"
    exit
fi

exe_cmd "git commit -a -m 'jekyll build'" //提交git
exe_cmd "git branch -D $branch" //删除master
error_code=$?   //获取错误代码
if [ $error_code != 0 ]; then //如果有错误
    echo 'Delete branch $branch fail.'   
    exit
fi

exe_cmd "git checkout -b $branch" //从当前的分支复制并跳转到新建分支
error_code=$?
if [ $error_code != 0 ];then  
    echo 'Switch branch $branch fail.' //切分支失败
    exit
else
//filter-branch为重写历史
//--subdirectory-filter _site/ 选择_site文件夹当做这个分支的根目录 
// -f 忽略空文件
    exe_cmd "git filter-branch --subdirectory-filter _site/ -f"
    exe_cmd "git push --all --force origin"//提交到远程 force表示强退
    exe_cmd "rm -Rf _site/" //删除_site目录
    exe_cmd "git checkout docs" //切回docs分支
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值