|
@@ -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 "✅ 合并完成!"
|