标签:git cherry dev C3 pick release hotfix
前提条件:有2个分支,分别是release,hotfix,其中release是用于生产环境的发布分支。
场景1:生产环境hotfix。
T1时刻,使用release分支发布生产。当时的HEAD的commit记为C1.
T2时刻,开发完成下一个迭代周期的代码,并且merge到release准备提测,此时release的HEAD记为C2,注意:C1和C2已经不同了。
T3时刻,生产环境发现了bug,开发基于C1创建一个hotfix分支,代码紧急修复并签入hotfix,用C3表示这个commit,发布生产。
问题:由于hotfix不能基于C2创建(T2时release已污染,存在下一周期待提测代码),如何确保C3被正确merge到release呢?
答案:使用git cherry-pick命令。
git checkout dev // 每个开发人员有自己的dev分支,这个分支基于release创建,时刻和release同步
git cherry-pick -n C3 //C3是hotfix的提交sha-1
git commit -am "把hotfix(C3)的代码cherry-pick到release"
git push origin dev
最后,去gitlab里发起一个MergeRequest吧,dev->release
场景2:上一次发布生产环境时,有
标签:git,cherry,dev,C3,pick,release,hotfix 来源: https://www.cnblogs.com/auv2009/p/12801188.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。