我怕经过很长时间以后想要修改某些东西,需要修改下这个脚本,然而忘记了怎么做。所以,打算对这个脚本进行注释。
#!/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