You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Actions部署React Storybook至Github Pages误删仓库的解决方法

解决方案

要解决部署时覆盖仓库所有文件的问题,你需要调整GitHub Action的配置,确保拉取仓库完整内容后仅更新/docs文件夹,具体修改如下:

1. 修改Checkout步骤

确保拉取main分支的完整历史和所有文件,避免部署时覆盖整个分支:

- name: Checkout main branch
  uses: actions/checkout@v3
  with:
    ref: main
    fetch-depth: 0  # 拉取完整仓库历史,保留所有现有文件
    persist-credentials: false

2. 调整Deploy步骤配置

保持仅清理docs文件夹旧内容,而非整个分支,确保只将Storybook构建产物部署到/docs:

- name: Deploy
  uses: JamesIves/github-pages-deploy-action@v4
  with:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    BRANCH: main
    FOLDER: docs-build
    CLEAN: true  # 仅清理TARGET_FOLDER(即docs)内的旧内容,不影响仓库其他文件
    TARGET_FOLDER: docs

修改后的完整storybook.yml

name: Build and Deploy
on:
  push:
    paths: [ "src/stories/**" ] # 仅当stories文件夹内容变更时触发
env:
  NPM_TOKEN: ${{ secrets.READER_TOKEN }}
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout main branch
        uses: actions/checkout@v3
        with:
          ref: main
          fetch-depth: 0
          persist-credentials: false
      - name: Install and Build
        run: |
          yarn install --frozen-lockfile
          yarn build-storybook
      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH: main
          FOLDER: docs-build
          CLEAN: true
          TARGET_FOLDER: docs

关键说明

  • fetch-depth: 0:确保拉取仓库所有历史和文件,避免部署时丢失原有内容
  • ref: main:明确指定拉取main分支,保证操作的分支正确
  • CLEAN: true:仅清理docs文件夹内的旧构建产物,不会影响仓库中其他文件

内容的提问来源于stack exchange,提问作者Leff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:07:37