#!/bin/bash set -e # 出错立即停止 # 获取参数 source_branch=$1 target_branch=$2 # 确保传入了两个参数 if [ -z "$source_branch" ] || [ -z "$target_branch" ]; then echo "❌ 使用方法: $0 <源分支> <目标分支>" echo "示例: $0 theforce-noai-test base" exit 1 fi # 定位到 Git 仓库根目录 cd "$(git rev-parse --show-toplevel)" # 获取当前分支名 current_branch=$(git rev-parse --abbrev-ref HEAD) # 如果当前不在 source_branch 上,则切换过去 if [ "$current_branch" != "$source_branch" ]; then echo "🔄 当前在分支 '$current_branch',正在切换到 '$source_branch'" git checkout "$source_branch" fi echo "📥 正在拉取 '$source_branch' 的最新代码..." git pull origin "$source_branch" echo "📥 正在拉取目标分支 '$target_branch' 的最新代码..." git fetch origin "$target_branch" echo "🔄 正在合并 '$target_branch' 到 '$source_branch'" git merge "origin/$target_branch" -m "Merge branch '$target_branch' into $source_branch" # 如果有冲突,需要手动解决,脚本会在此处中断 echo "📤 正在推送合并后的代码到远程 '$source_branch'" git push origin "$source_branch" echo "✅ 合并完成并已推送到远程分支 '$source_branch'"