大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

git merge

背景:QA维护了自己的分支 QAtujiabnb ,当有多个项目同时进行,且不断需要合并到QAtujiabnb分支时,手动合并效率太低,急需一个合并的脚本支撑

检查本地版本库当前连接的远程版本库
git config remote.origin.url

把远程版本库的变化同步到本地
git fetch origin

获取 master 分支当前的SHA1
SHA_master=git rev-parse origin/master^{}

获取当前分支名
git checkout ${work_branch}
current_branch=`git symbolic-ref --short -q HEAD`

清除当前库中未提交的变更
git reset --hard
清除本地库中构建过程生成的中间产物
git clean -dqxf
拉取代码
git pull

检查主干上的提交是否都已合并到QA分支
exist=$(git log TUJIA-9969_orderdetail |grep f1ae5a4707ef0e2cf25c95382ad62706eb9468f8)

如果未合并master,先merge(这里有个判断的逻辑,请见代码)
git merge --no-ff --commit --log origin/master -m "git merge origin/master"

合并项目分支
git merge --no-ff --commit --log origin/${develop_branch} -m "git merge origin/${develop_branch} "

必要的log输出,这里选择的是一天内的log
git_log=`git --no-pager log --pretty=format:"%an%x09%ad%x09%s" --date=format:'%m/%d %H:%M' --after="yesterday"`

大功告成,推到远端
git push

重要:
源码git下载地址
P.S. 代码里是有两个主项目,而前端项目又有两个子项目