GitHub中PR关闭时如何自动删除分支?
在PR关闭时自动删除分支的方法
GitHub原生仓库设置里确实没有提供PR关闭时自动删除分支的选项,但可以通过GitHub Actions实现这个需求,具体操作如下:
- 在仓库的
.github/workflows/目录下创建一个工作流文件,比如命名为delete-closed-pr-branch.yml - 将以下代码写入该文件:
name: Delete Closed PR Branch on: pull_request: types: [closed] jobs: delete-branch: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Delete the target branch run: | BRANCH_NAME="${{ github.head_ref }}" git push origin --delete "$BRANCH_NAME"
注意事项
- 确保仓库给GitHub Actions分配了足够权限:在仓库
Settings > Actions > General里,确认"Workflow permissions"设置为"Read and write permissions" - 如果PR对应的源分支是仓库的保护分支(如main/master),该操作会失败,因为保护分支禁止直接删除
- 针对外部贡献者从fork仓库提交的PR,由于权限限制,这个工作流无法删除fork仓库里的分支,只能删除当前仓库内的分支
内容的提问来源于stack exchange,提问作者dtandon
相关产品推荐
相关产品推荐

