From 28bc3a86e3b37facf7b7f6eb3a6ce4f1bc5ec415 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 17 May 2026 15:34:14 +0800 Subject: [PATCH] =?UTF-8?q?1.=C2=A0=E7=89=88=E6=9C=AC=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=BD=BB=E5=BA=95=E4=BF=AE=E5=A4=8D=20=E6=8C=89=20=C2=A0?= =?UTF-8?q?=E5=A4=A7=E7=89=88=E6=9C=AC.=E4=B8=AD=E7=89=88=E6=9C=AC.?= =?UTF-8?q?=E5=B0=8F=E7=89=88=E6=9C=AC.=E8=BF=AD=E4=BB=A3=E5=8F=B7=C2=A0?= =?UTF-8?q?=20=E5=88=86=E6=AE=B5=E6=95=B0=E5=AD=97=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=85=88=E6=8A=93=E5=8F=96=20=C2=A0appbase-v?= =?UTF-8?q?15.20.12=C2=A0=20=E8=80=8C=E4=B8=8D=E6=98=AF=E6=97=A7=E7=89=88?= =?UTF-8?q?=20=E2=80=8B=202.=C2=A0=E6=A3=80=E5=87=BA=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8=20?= =?UTF-8?q?=C2=A0git=20checkout=20=E6=8F=90=E4=BA=A4=E5=93=88=E5=B8=8C=20-?= =?UTF-8?q?-=20=E7=9B=AE=E5=BD=95=C2=A0=20=E8=AF=AD=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E6=8A=A5=E8=B7=AF=E5=BE=84=E4=B8=8D=E5=AD=98?= =?UTF-8?q?=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ashMergeProjects-to-Projects_Keeper_Tag.sh | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh b/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh index 2ce169a..0843663 100644 --- a/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh +++ b/.winboll/bashMergeProjects-to-Projects_Keeper_Tag.sh @@ -1,16 +1,18 @@ #!/system/bin/sh ## 流程:获取远程最新Tag → 获取Tag对应Commit → 按Commit合并远程模块目录到本地 -# ====================== 1. 获取模块远程最新版本TAG ====================== +# ====================== 1. 获取模块远程最新版本TAG(修复版本排序) ====================== get_module_latest_tag() { local module_name="$1" git fetch origin --tags 2>/dev/null + # 取出所有同前缀标签,去除头部,纯版本排序,取最大最新 git ls-remote --tags origin "${module_name}-*" 2>/dev/null \ | grep -v '\^{}' \ - | sort -V \ - | tail -1 \ | awk '{print $2}' \ - | sed 's/refs\/tags\///' + | sed "s/refs\/tags\/${module_name}-//" \ + | sort -t '.' -k1,1n -k2,2n -k3,3n -k4,4n \ + | tail -1 \ + | xargs echo "${module_name}-" } # ====================== 2. 通过TAG获取对应提交Commit哈希 ====================== @@ -146,9 +148,9 @@ for item in "${MERGE_APP_PROJECT_LIST[@]}"; do echo "对应提交点:$TARGET_COMMIT" echo "----------------------------------------" - # 正确写法:用commit检出指定目录 - git checkout ${TARGET_COMMIT} -- ${item_lower} - git add ${item_lower} + # 正确语法:从指定提交点拉取文件夹覆盖本地 + git checkout "${TARGET_COMMIT}" -- "${item_lower}" + git add "${item_lower}" git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}" done @@ -173,9 +175,8 @@ for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do echo "对应提交点:$TARGET_COMMIT" echo "----------------------------------------" - # 同时检出主目录 + lib目录 - git checkout ${TARGET_COMMIT} -- ${item_lower} lib${item_lower} - git add ${item_lower} lib${item_lower} + git checkout "${TARGET_COMMIT}" -- "${item_lower}" "lib${item_lower}" + git add "${item_lower}" "lib${item_lower}" git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}" done