From d964e27c9d6062bcca87d120d0515d1f2b1a180d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Fri, 5 Jun 2026 13:02:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(hooks):=20=E7=94=A8=20merge-base=20?= =?UTF-8?q?=E6=9B=BF=E4=BB=A3=20rev-parse=20=E4=BF=AE=E5=A4=8D=20pre-push?= =?UTF-8?q?=20=E5=8F=98=E6=9B=B4=E6=96=87=E4=BB=B6=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .husky/pre-push | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.husky/pre-push b/.husky/pre-push index ff7b2f1..682815c 100644 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -4,8 +4,10 @@ npx tsc --noEmit # ESLint 严格检查(仅检查本次推送的变更文件,不阻塞不相关的旧代码) # 新分支无 upstream 时,回退到与 origin/main 对比 -BASE=$(git rev-parse --verify @{upstream} 2>/dev/null && echo "@{upstream}" || echo "origin/main") -CHANGED_FILES=$(git diff --name-only --diff-filter=d "$BASE"...HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx' '*.mjs') -if [ -n "$CHANGED_FILES" ]; then - echo "$CHANGED_FILES" | xargs npx eslint --max-warnings=0 +MERGE_BASE=$(git merge-base HEAD @{upstream} 2>/dev/null || git merge-base HEAD origin/main 2>/dev/null) +if [ -n "$MERGE_BASE" ]; then + CHANGED_FILES=$(git diff --name-only --diff-filter=d "$MERGE_BASE" HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx' '*.mjs') + if [ -n "$CHANGED_FILES" ]; then + echo "$CHANGED_FILES" | xargs npx eslint --max-warnings=0 + fi fi