12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/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 "✅ 合并完成!"
|