43 lines
1.2 KiB
Bash
Executable File
43 lines
1.2 KiB
Bash
Executable File
#!/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'"
|