如何同步代码到目标分支
记录一次项目中Bitbucket 开启 cascading merge 后极大的简化同步代码的重复工作
client preview
相信大家在做自己的项目开发的时候都会遇到一个问题。在项目上线前都会从master分支切出一个release分支,继续做一些功能的实现或bug修复。但这时就会难免遇到一个问题 - 新的修改需要同步到master分支上。
如何同步release的代码到master呢?下面我就来说说我的常用做法:
Git Stash
在做完完整的code change 后,我们可以在命令行输入
git bash
git stash
git 会帮我们本次的修改存在本地,接着我们切到我们的release branch
git bash
git checkout release/1.0
再将我们缓存的代码应用到release分支
git bash
git stash apply
这样我们所有的修改就同步到release 分支了。
Git Cherry-Pick
cherry-pick
的使用稍微繁琐一点,需要我们提供期望的commitHash
。
首先切到目标分支
git bash
git checkout release/1.0
然后应用单次提交
git bash
git cherry-pick abc # abc 是你想应用的提交哈希
应用多个不连续的提交
git bash
git cherry-pick abc def # abc def 是你想应用的提交哈希
应用连续的提交
git bash
git cherry-pick <commitHash1>..<commitHash2>
Bitbucket 提供的 cascading merge
在Bitbucket 中打开我们的项目,点击Setting, 将cascading merge 配置项开启。一旦开启了cascading merge 后我们就再也不需要在master创建新的分支同步代码了,Bitbucket 可以帮我们完成。
当我们在release分支修改完代码创建PR后, 当我们点击merge时,Bitbucket 自动的帮我们创建一个合并到master。可以说非常的方便。如果遇到冲突解决一下冲突就好了。
