相关文章推荐
微醺的开水瓶  ·  git subtree pull 错误 ...·  1 月前    · 
很拉风的罐头  ·  vscode git blame - CSDN文库·  1 月前    · 
博学的墨镜  ·  用Alpine会让Python ...·  1 年前    · 
谦和的电池  ·  s_isdir函数-掘金·  1 年前    · 
首发于 Develop Tools
git cherry-pick概念及冲突解决

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;