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

求助:WordPress插件开发与部署分支文件夹结构不一致的自动化解决方案

解决方案:自动化同步WordPress插件开发与部署分支结构

方案1:编写Shell脚本手动触发同步

直接写一个脚本,一键完成从dev分支同步文件到main分支的指定结构,彻底替代手动复制操作。

示例脚本(sync-plugin.sh)

#!/bin/bash

# 切换到dev分支拉取最新代码
git checkout dev
git pull origin dev

# 切换到main分支同步远程最新内容
git checkout main
git pull origin main

# 清空trunk目录(保留.gitignore等Git相关文件)
rm -rf trunk/*

# 复制dev分支核心文件到trunk目录
cp -r my-plugin.php trunk/
cp -r included trunk/
cp -r admin trunk/

# 若dev分支有独立静态资源目录,同步到main的assets目录(按需启用)
# cp -r assets/* assets/

# 提交并推送部署结构更新
git add trunk/ assets/
git commit -m "Sync latest dev code to deployment structure"
git push origin main

# 切回dev分支继续开发
git checkout dev

使用前给脚本添加执行权限:chmod +x sync-plugin.sh,运行./sync-plugin.sh即可完成全流程同步。

方案2:用GitHub Actions实现自动同步

如果代码托管在GitHub,可配置CI/CD工作流,当dev分支推送代码或打版本标签时,自动同步到main分支的部署结构。

示例工作流文件(.github/workflows/sync-deploy.yml)

name: Sync Dev to Deployment Branch
on:
  push:
    branches: [dev]
    # 可选:仅在打版本标签时触发,比如v1.0.0
    # tags:
    #   - 'v*'

jobs:
  sync-deployment:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout full repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Sync dev files to main's trunk directory
        run: |
          git checkout main
          # 清空trunk现有内容
          rm -rf trunk/*
          # 复制dev分支的核心文件
          cp -r ./my-plugin.php trunk/
          cp -r ./included trunk/
          cp -r ./admin trunk/
          # 同步静态资源(按需启用)
          # cp -r ./assets/* ./assets/

      - name: Commit and push changes
        run: |
          git config --global user.name "GitHub Actions Bot"
          git config --global user.email "actions@github.com"
          git add trunk/ assets/
          # 无变更时跳过提交
          git commit -m "Auto-sync dev branch to deployment structure" || echo "No changes to commit"
          git push origin main

方案3:Git自定义钩子(本地自动触发)

在本地仓库配置post-commit钩子,每次在dev分支提交代码后自动触发同步脚本。注意该配置仅在本地生效,适合个人开发场景。

配置步骤:

  1. 进入仓库的.git/hooks目录
  2. 创建post-commit文件,写入以下内容:
#!/bin/bash
./sync-plugin.sh
  1. 给钩子文件添加执行权限:chmod +x post-commit

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:55:03