liujia 2 місяців тому
батько
коміт
9e5617b051
1 змінених файлів з 49 додано та 0 видалено
  1. 49 0
      merge_dev_to_pro.sh

+ 49 - 0
merge_dev_to_pro.sh

@@ -0,0 +1,49 @@
+#!/bin/bash
+# 用于将 dev 分支合并到 prod 分支,保留 prod 配置文件版本
+# 支持第一次对齐历史 & 后续增量合并
+# 使用方法:
+#   sh merge_dev_to_pro.sh first    # 第一次合并
+#   sh merge_dev_to_pro.sh          # 以后正常合并
+
+CONFIG_FILES=("Jenkinsfile" "Dockerfile" "nginx.conf")
+
+# 确保脚本在项目根目录运行
+if [ ! -d .git ]; then
+    echo "❌ 请在 Git 项目根目录运行此脚本"
+    exit 1
+fi
+
+# 1. 更新两个分支
+echo "📦 更新本地分支..."
+git checkout prod && git pull origin prod
+git checkout dev && git pull origin dev
+
+# 2. 切回 pro 分支
+git checkout prod
+
+# 3. 第一次合并(建立历史关系)
+if [ "$1" == "first" ]; then
+    echo "🚀 第一次对齐历史,准备合并 dev..."
+    git merge dev --no-commit
+else
+    echo "🔄 增量合并 dev..."
+    git merge dev --no-commit
+fi
+
+# 4. 保留 prod 分支的配置文件
+echo "🛡 保留 prod 配置文件版本..."
+for file in "${CONFIG_FILES[@]}"; do
+    if [ -f "$file" ]; then
+        git checkout --ours "$file"
+        git add "$file"
+        echo "  ✅ 已保留 $file"
+    else
+        echo "  ⚠️ $file 在当前分支不存在,跳过"
+    fi
+done
+
+# 5. 提交合并
+git commit -m "Merge dev into prod (keep prod config files)"
+git push origin prod
+
+echo "✅ 合并完成!"