新建一个 autoMerge.sh
的文件,文件内容如下
# 提示用户确认继续执行
read -p "确认要执行脚本吗?(输入 'yes' 继续): " userInput# 检查用户输入是否为 "yes"
if [ "$userInput" != "yes" ]; thenecho "用户取消了操作,脚本已终止。"exit 1
fi#进入到代码根目录位置
cd product-demo#切换到dev分支
git checkout dev#拉取最新代码
git pull#切换到uat分支
git checkout uat#从dev分支合并代码到uat
git merge --no-edit dev#检查是否存在合并冲突
if [[ -n $(git ls-files --unmerged) ]]; then# 解决合并冲突,选择当前分支的版本git checkout --ours .# 提交解决冲突后的代码git add .git commit -m "Resolved merge conflict by choosing current branch's code"
fi#将最新代码提交到uat分支
git push origin uat#结束后回到dev分支
git checkout dev
命令解释
read -p "确认要执行脚本吗?(输入 'yes' 继续): " userInput
提示用户输入,要求用户确认是否继续执行脚本。只有用户输入’yes’时,脚本才会继续执行。if [ "$userInput" != "yes" ]; then
如果用户输入不是’yes’,执行下面的命令。echo "用户取消了操作,脚本已终止。"
输出用户取消操作的信息。exit 1
终止脚本执行,并返回退出码1。cd suitecrm-fe
改变当前工作目录到suitecrm-fe
。git checkout dev
切换到名为"dev"的分支。git pull
从远程仓库拉取"dev"分支的最新代码。git checkout uat
切换到名为"uat"的分支。git merge --no-edit dev
从"dev"分支合并更改到当前的"uat"分支,不提供编辑合并提交信息的机会。if [[ -n $(git ls-files --unmerged) ]]; then
检查是否存在未合并的文件。如果有,说明有合并冲突。git checkout --ours .
选择当前分支的版本来解决合并冲突。git add .
将所有文件添加到暂存区。git commit -m "Resolved merge conflict by choosing current branch's code"
提交暂存区中的更改,并附加指定的提交信息。git push origin uat
将"uat"分支的最新更改推送到远程仓库的"uat"分支。git checkout dev
完成所有操作后,切换回"dev"分支。