merge_dev_to_pro.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/bash
  2. # 用于将 dev 分支合并到 prod 分支,保留 prod 配置文件版本
  3. # 支持第一次对齐历史 & 后续增量合并
  4. # 使用方法:
  5. # sh merge_dev_to_pro.sh first # 第一次合并
  6. # sh merge_dev_to_pro.sh # 以后正常合并
  7. CONFIG_FILES=("Jenkinsfile" "Dockerfile" "nginx.conf")
  8. # 确保脚本在项目根目录运行
  9. if [ ! -d .git ]; then
  10. echo "❌ 请在 Git 项目根目录运行此脚本"
  11. exit 1
  12. fi
  13. # 1. 更新两个分支
  14. echo "📦 更新本地分支..."
  15. git checkout prod && git pull origin prod
  16. git checkout dev && git pull origin dev
  17. # 2. 切回 pro 分支
  18. git checkout prod
  19. # 3. 第一次合并(建立历史关系)
  20. if [ "$1" == "first" ]; then
  21. echo "🚀 第一次对齐历史,准备合并 dev..."
  22. git merge dev --no-commit
  23. else
  24. echo "🔄 增量合并 dev..."
  25. git merge dev --no-commit
  26. fi
  27. # 4. 保留 prod 分支的配置文件
  28. echo "🛡 保留 prod 配置文件版本..."
  29. for file in "${CONFIG_FILES[@]}"; do
  30. if [ -f "$file" ]; then
  31. git checkout --ours "$file"
  32. git add "$file"
  33. echo " ✅ 已保留 $file"
  34. else
  35. echo " ⚠️ $file 在当前分支不存在,跳过"
  36. fi
  37. done
  38. # 5. 提交合并
  39. git commit -m "Merge dev into prod (keep prod config files)"
  40. git push origin prod
  41. echo "✅ 合并完成!"