fix(ci): auto-fix checkout加--force,避免tarball untracked文件冲突 #643

Merged
xiaoxia merged 1 commits from fix/ci-autofix-checkout-force into develop 2026-07-20 14:28:42 +08:00
Owner

问题

Validate使用tarball方式checkout代码,auto-fix脚本执行git checkout -B切换到源分支时,tarball留下的untracked文件会导致checkout失败。

修复

git checkout -B--force 参数,强制覆盖untracked文件。

关联

  • 替换#638(与#636冲突,#636已合并push重试+rebase核心功能)
  • 属于Validate black格式不一致问题(失败率45%)的补充修复
## 问题 Validate使用tarball方式checkout代码,auto-fix脚本执行`git checkout -B`切换到源分支时,tarball留下的untracked文件会导致checkout失败。 ## 修复 `git checkout -B` 加 `--force` 参数,强制覆盖untracked文件。 ## 关联 - 替换#638(与#636冲突,#636已合并push重试+rebase核心功能) - 属于Validate black格式不一致问题(失败率45%)的补充修复
xiaoxia added 1 commit 2026-07-20 14:16:59 +08:00
fix(ci): auto-fix checkout加--force,避免tarball untracked文件冲突
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 18s
AI Code Review / AI Code Review (pull_request) Successful in 2m0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 3m48s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 7m10s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 7m3s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 11m29s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 11m36s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 10s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m14s
7593c6cde3
Collaborator

📊 审查概览

  • 整体评价:需修改
  • 严重问题数量:1 个
  • 一般建议数量:0 个

需修改的问题(严重)

  1. [scripts/ci/auto_fix_formatting.py: 65] Git 命令参数顺序错误
    • 问题描述:git checkout -B 命令的语法要求紧跟其后的参数是新分支的名称。当前代码将 --force 放在 -B 之后,Git 会将 --force 解析为分支名,而将 {head_branch} 解析为起始点(start_point),导致命令执行失败或产生错误的分支。
    • 修改建议:将 --force(或 -f)选项移到 -B 之前。修改为:
      run(f"git checkout --force -B {head_branch} FETCH_HEAD")
      
      run(f"git checkout -f -B {head_branch} FETCH_HEAD")
      

💡 改进建议(一般)

良好实践

  • 意识到了在 CI 环境中切换分支可能遇到冲突或脏状态,试图使用 force 标志来增强脚本的健壮性,方向是正确的。

🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 14:18:58 | 模型:

### 📊 审查概览 - 整体评价:需修改 - 严重问题数量:1 个 - 一般建议数量:0 个 ### ❌ 需修改的问题(严重) 1. **[scripts/ci/auto_fix_formatting.py: 65] Git 命令参数顺序错误** - 问题描述:`git checkout -B` 命令的语法要求紧跟其后的参数是新分支的名称。当前代码将 `--force` 放在 `-B` 之后,Git 会将 `--force` 解析为分支名,而将 `{head_branch}` 解析为起始点(start_point),导致命令执行失败或产生错误的分支。 - 修改建议:将 `--force`(或 `-f`)选项移到 `-B` 之前。修改为: ```python run(f"git checkout --force -B {head_branch} FETCH_HEAD") ``` 或 ```python run(f"git checkout -f -B {head_branch} FETCH_HEAD") ``` ### 💡 改进建议(一般) 无 ### ✅ 良好实践 - 意识到了在 CI 环境中切换分支可能遇到冲突或脏状态,试图使用 force 标志来增强脚本的健壮性,方向是正确的。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 14:18:58 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit 30f125bc78 into develop 2026-07-20 14:28:42 +08:00

🗑️ 预览环境已清理

PR #643 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #643 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.