步骤
使用shell脚本自动merge当前分支到目标分支
1、先把当前分支提交
2、再切换到目标分支,并拉取目标分支最新代码
3、然后把当前分支合并到目标分支
4、再切换回当前分支
新建mergeToTarget.sh
#!/bin/bash
# 把当前分支merge到$0分支,并push到远程仓库
# 获取当前分支名称
CURRENT_BRANCH=$(git branch --show-current)
echo "当前分支: $CURRENT_BRANCH 开始合并到 目标分支:$1"
# 确保获取到了当前分支名称
if [ -z "$CURRENT_BRANCH" ]; then
echo "无法获取当前分支名称,请确保你在一个 Git 仓库中。"
exit 1
fi
# 检查是否有需要提交的内容
if [ -n "$(git status --porcelain)" ]; then
echo "有未提交的内容"
git add -A
git commit -m "feat: $CURRENT_BRANCH update"
git push
else
echo "没有需要提交的内容"
fi
# 设置目标分支名称
TARGET_BRANCH=$0
# 拉取最新的更改
# git fetch origin
# 切换到 $0 分支
echo "切换到 $TARGET_BRANCH 分支..."
git checkout $TARGET_BRANCH
if [ $? -ne 0 ]; then
echo "切换到 $TARGET_BRANCH 分支失败!"
exit 1
fi
# 拉取 $0 分支最新的更改
echo "拉取 $TARGET_BRANCH 分支的最新更改..."
git pull origin $TARGET_BRANCH
if [ $? -ne 0 ]; then
echo "拉取 $TARGET_BRANCH 分支的最新更改失败!"
exit 1
fi
# 合并当前分支到 $0 分支
echo "将 $CURRENT_BRANCH 分支合并到 $TARGET_BRANCH 分支..."
git merge $CURRENT_BRANCH --no-edit
if [ $? -ne 0 ]; then
echo "合并 $CURRENT_BRANCH 分支到 $TARGET_BRANCH 分支失败!"
exit 1
fi
# 推送 $0 分支的更改到远程仓库
echo "推送 $TARGET_BRANCH 分支的更改到远程仓库..."
git push origin $TARGET_BRANCH
if [ $? -ne 0 ]; then
echo "推送 $TARGET_BRANCH 分支的更改到远程仓库失败!"
exit 1
fi
# 切换回原来的分支
echo "切换回 $CURRENT_BRANCH 分支..."
git checkout $CURRENT_BRANCH
if [ $? -ne 0 ]; then
echo "切换回 $CURRENT_BRANCH 分支失败!"
exit 1
fi
echo "分支$CURRENT_BRANCH 已合并到目标分支:$1 操作完成!"
package.json中增加命令, 把当前分支合并到stage分支
{
"scripts": {
"mtt": "sh bin/mergeToTarget.sh stage"
}
}