我有一个在
test
分支上运行的测试环境,并且我设置了一个 GitHub Action,以便在 test
分支合并到 main
分支时保持最新状态。默认情况下,我们使用“挤压”合并策略来保持 main
分支历史记录干净。下面的脚本有效,但我希望得到更有经验的同行的反馈:
name: Update Test Branch
on:
push:
branches: [main]
permissions: write-all
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Git User
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
- name: Update Test Branch
run: |
git checkout main
git fetch origin
git checkout test
git pull origin test
git rebase origin/main || { git rebase --abort; echo "::error ::Rebase conflict detected. Manual resolution required."; exit 1; }
git push origin test --force-with-lease
鉴于我使用挤压合并策略来保持
main
分支历史记录干净,这是确保 test
分支保持最新的最佳方法吗?
我也在考虑类似的方法,我认为你建议的方法是正确的。
这不是一个明确的答案,但我建议使用
[synchronize][1]
!
当 PR 的基础分支更新时,会触发该操作再次运行。(来自 gpt)