Git部署脚本
部署静态资源
第一种写法
deploy.sh
WARNING
部署逻辑是:
先将编译好的dist文件夹复制到一个新的路径下
然后初始化git仓库,本地切换分支(目的是为了本地分支和所推送的远程分支保持一致),然后强制推送远程分支
shell
#!/bin/bash
# 设置变量
SOURCE_DIR="./dist" # 源文件夹路径
DEST_DIR="E:\\tempDir" # 目的文件夹路径
REMOTE_REPO="git@github.com:xxxxx.git" # 远程仓库地址
REMOTE_BRANCH="gh-pages" # 分支名称
COMMIT_MESSAGE="Update repository" # 提交信息
# 删除目标文件夹(如果它存在)
if [ -d "$DEST_DIR" ]; then
rm -rf "$DEST_DIR"
fi
# 确保目的文件夹存在
mkdir -p "$DEST_DIR"
# 复制文件
cp -R "$SOURCE_DIR"/* "$DEST_DIR"
# 进入目的文件夹
cd "$DEST_DIR" || exit
# 初始化git仓库(如果尚未初始化)
if [ ! -d ".git" ]; then
git init
git remote add origin "$REMOTE_REPO"
fi
# 切换分支
git checkout -b "$REMOTE_BRANCH"
# 添加所有文件到暂存区
git add .
# 提交更改
git commit -m "$COMMIT_MESSAGE"
# 推送到GitHub 远程分支
git push -u -f origin "$REMOTE_BRANCH"
第二种写法
deploy.sh
WARNING
部署逻辑是:
直接进去dist文件夹,然后初始化仓库,推送远程分支,然后删除分支。
这个脚本看上去更加简单
shell
#!/bin/bash
# 忽略错误
set -e
# 构建
npm run docs:build
# 进入待发布的目录
cd docs/.vitepress/dist
# 初始化 git 并强制提交到仓库
git init
git add -A
git commit -m "Updated version of git repositoryMap"
git remote add origin 远程git仓库
# 将本地的master分支推送到远程的gh-pages分支
git push -f origin master:gh-pages
# 返回上次所在的目录
cd -
# 删除dist文件夹
rm -rf docs/.vitepress/dist
# 是否关闭命令行窗口
exec /bin/bash