git cherry-pick概念及冲突解决
一、cherry-pick适用于什么场景?
假设你拥有两个仓库A、B(或者一个仓库的两个分支,只要是两个project都适用)时。A此时是develop分支,用于不断提交新的功能。B是release分支,用于提交在develop中稳定的commit(内容会落后于develop分支)。在此类场景下就会经常需要将A中的某个commit单独拉取并合并到B中,想要实现这种功能就需要git cherry-pick命令,以下图为例讲解
a - b - c - d - e - f (分支(仓库)A:develop)
d - f (分支(仓库)B:release)
当我们在分支A中已经做了很多版的更新后,此时我们只想将A中间的某两个commit同步到分支B中,此时无法直接git pull,该怎么办呢?方法就是cherry-pick!!!,像摘樱桃一样在A的git log中找到某个commit的commitHash,然后使用以下命令,即可进行cherry-pcik操作,从而达到上图只将d、f同步到B分支的效果。
切换到B分支所在的本地工作目录(即project目录)
使用:git cherry-pick <commitHash>
二、什么叫冲突?
分支A: 分支B:
init.c init.c
L1356: uint32 xxx = 0; L1356: uint32 IMG = 0;