一行命令自动merge代码 - shell脚本

背景: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. 代码里是有两个主项目,而前端项目又有两个子项目

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 下班路上,走到公寓门外的马路上,一家单位在施工,工人们已经收工,一个工人很自然的蹲在地上用马路上流着的雨水洗手。我...
    扶苏将军阅读 348评论 0 1
  • 今天是学校每年一度的艺术节,孩子们穿上华丽的演出服,专业人员给化的淡妆,精神极了,很遗憾,没能去现场看孩子们的演...
    唯品赤玉阅读 141评论 0 0
  • 吃饭的时候又看了一下《让子弹飞》,最让我触动的还是六子的死。为了证明自己只吃了一碗凉粉而把肚子剖开,当血淋...
    土豆_a325阅读 416评论 0 0
  • 今天将离子源冷却水管道排空 用高压空气排净残余液体 为安装连接管线做准备
    刘铭恩阅读 173评论 0 0

友情链接更多精彩内容