Bootstrap

GIT--克隆MR(还没合入)目标分支代码+增量代码

日常工作中经常遇到这种情况:

基于主干master拉出特性分支test
过段时间之后,master主干代码一直往前演进迭代,test上只有特性功能的代码修改,为适配耦合,test分支不做rebase master(即test上并没主干最新部分代码)
虽已创建MR,但此时test分支还未合入到master
本地下载主干最新代码+特性分支上的增量代码,来检验MR是否OK

应用场景:

  1. gitlab+Jenkins代码入库前自检
  2. 个人分支合并到主干分支MR事件自动触发
  3. 因为多个代码仓适配同一个Jenkins job,所以不用Jenkins 自身克隆代码插件将代码仓固定写死
  4. 只有一个pipeline来适配多个业务代码仓,检测到任一代码仓有MR事件,自动触发自检,需要克隆该代码仓目标分支+增量代码下来

以下代码就是在MR合入成功之前,将目标分支最新代码要合入的增量代码一起克隆下来:

git clone ${git_url}
git checkout ${target_branch}
git fetch origin +refs/merge-requests/${MRID} /head:refs/remotes/origin/merge-requests/${MRID}
git merge refs/remotes/origin/merge-requests/${MRID}

参数解释:

#git_url:仓库URL(HTTPS格式)
#target_branch:目标分支
#MRID:提交merge之后生成的一个ID标记,他是唯一且递增的

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;