demoapp、winboll、aes  没有  xxx-版本号  格式标签,跳过属于正常

​
2.  appbase  成功抓到标签和commit,只是命令语法错导致拉取失败,改完即可正常合并
This commit is contained in:
2026-05-17 15:25:10 +08:00
parent 555c5deef9
commit 8fa09a9f99

View File

@@ -5,7 +5,6 @@
get_module_latest_tag() { get_module_latest_tag() {
local module_name="$1" local module_name="$1"
git fetch origin --tags 2>/dev/null git fetch origin --tags 2>/dev/null
# 筛选 模块名- 开头标签,按版本排序取最新
git ls-remote --tags origin "${module_name}-*" 2>/dev/null \ git ls-remote --tags origin "${module_name}-*" 2>/dev/null \
| grep -v '\^{}' \ | grep -v '\^{}' \
| sort -V \ | sort -V \
@@ -45,7 +44,7 @@ if [ "$CUR_BRANCH" != "$TARGET_BRANCH" ]; then
exit 1 exit 1
fi fi
# ====================== 目录结构校验(保留原有) ====================== # ====================== 目录结构校验 ======================
MERGE_OBJECTS_LIST=( MERGE_OBJECTS_LIST=(
.git .git
.gitignore .gitignore
@@ -131,13 +130,11 @@ MERGE_APP_PROJECT_LIST=(DemoAPP)
echo -e "---------- 应用型模块合并 ----------" echo -e "---------- 应用型模块合并 ----------"
for item in "${MERGE_APP_PROJECT_LIST[@]}"; do for item in "${MERGE_APP_PROJECT_LIST[@]}"; do
item_lower=$(echo "$item" | tr 'A-Z' 'a-z') item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
# 1.获取远程最新TAG
LATEST_TAG=$(get_module_latest_tag "$item_lower") LATEST_TAG=$(get_module_latest_tag "$item_lower")
if [ -z "$LATEST_TAG" ]; then if [ -z "$LATEST_TAG" ]; then
echo "跳过 $item_lower :未查询到任何版本标签" echo "跳过 $item_lower :未查询到任何版本标签"
continue continue
fi fi
# 2.通过TAG获取对应提交点Commit
TARGET_COMMIT=$(get_commit_by_tag "$LATEST_TAG") TARGET_COMMIT=$(get_commit_by_tag "$LATEST_TAG")
if [ -z "$TARGET_COMMIT" ]; then if [ -z "$TARGET_COMMIT" ]; then
echo "跳过 $item_lower :标签 $LATEST_TAG 未查询到对应提交点" echo "跳过 $item_lower :标签 $LATEST_TAG 未查询到对应提交点"
@@ -149,8 +146,8 @@ for item in "${MERGE_APP_PROJECT_LIST[@]}"; do
echo "对应提交点:$TARGET_COMMIT" echo "对应提交点:$TARGET_COMMIT"
echo "----------------------------------------" echo "----------------------------------------"
# 3.使用Commit从远程模块分支拉取目录合并到本地 # 正确写法用commit检出指定目录
git checkout origin/${item_lower} ${TARGET_COMMIT}:${item_lower} git checkout ${TARGET_COMMIT} -- ${item_lower}
git add ${item_lower} git add ${item_lower}
git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}" git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}"
done done
@@ -160,13 +157,11 @@ MERGE_LIB_PROJECT_LIST=(WinBoLL APPBase AES)
echo -e "---------- 类库模块合并 ----------" echo -e "---------- 类库模块合并 ----------"
for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do
item_lower=$(echo "$item" | tr 'A-Z' 'a-z') item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
# 1.获取远程最新TAG
LATEST_TAG=$(get_module_latest_tag "$item_lower") LATEST_TAG=$(get_module_latest_tag "$item_lower")
if [ -z "$LATEST_TAG" ]; then if [ -z "$LATEST_TAG" ]; then
echo "跳过 $item_lower :未查询到任何版本标签" echo "跳过 $item_lower :未查询到任何版本标签"
continue continue
fi fi
# 2.通过TAG获取对应提交点Commit
TARGET_COMMIT=$(get_commit_by_tag "$LATEST_TAG") TARGET_COMMIT=$(get_commit_by_tag "$LATEST_TAG")
if [ -z "$TARGET_COMMIT" ]; then if [ -z "$TARGET_COMMIT" ]; then
echo "跳过 $item_lower :标签 $LATEST_TAG 未查询到对应提交点" echo "跳过 $item_lower :标签 $LATEST_TAG 未查询到对应提交点"
@@ -178,8 +173,8 @@ for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do
echo "对应提交点:$TARGET_COMMIT" echo "对应提交点:$TARGET_COMMIT"
echo "----------------------------------------" echo "----------------------------------------"
# 3.拉取主目录 + lib目录 # 同时检出主目录 + lib目录
git checkout origin/${item_lower} ${TARGET_COMMIT}:${item_lower} ${TARGET_COMMIT}:lib${item_lower} git checkout ${TARGET_COMMIT} -- ${item_lower} lib${item_lower}
git add ${item_lower} lib${item_lower} git add ${item_lower} lib${item_lower}
git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}" git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}"
done done