git cherry-pick适用场景详解

Posted auv2009

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git cherry-pick适用场景详解相关的知识,希望对你有一定的参考价值。

前提条件:有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-pick适用场景详解的主要内容,如果未能解决你的问题,请参考以下文章

Git应用详解第九讲:Git cherry-pick与Git rebase

Git 场景 :从一个分支cherry-pick多个commit

git cherry-pick

git cherry-pick用法

redis 数据类型详解 以及 redis适用场景场合

git使用进阶——stash及cherry-pick的理解和实例