git cherry-pick branch_name命令作用及相关操作疑问
Git cherry-pick 相关问题解答
关于 git cherry-pick branch_name 的作用
执行git cherry-pick branch_name时,只会把branch_name分支的最新提交合并到当前分支,不会选取该分支的一段范围提交。它的核心逻辑就是单独挑出某一个提交,把它的变更复制到当前分支上。
附加问题:选取指定分支的全部提交的操作方法
分两种场景处理:
- 如果当前分支和目标分支是基于同一个起点的线性分支(比如目标分支是从当前分支拉出来开发的),直接用
git merge branch_name就能把目标分支上的所有新提交合并到当前分支,这是最常规的做法。 - 如果是非线性分支关系,或者你想把目标分支的所有提交都作为独立的新提交复制到当前分支(而不是合并成一个提交),可以先找到两个分支的公共祖先提交哈希:
然后用这个哈希加上目标分支名,执行范围 cherry-pick:git merge-base HEAD branch_name
这样就能把目标分支上从公共祖先之后的所有提交,逐个复制到当前分支。git cherry-pick <公共祖先哈希>..branch_name
内容的提问来源于stack exchange,提问作者fuenfundachtzig
相关产品推荐
相关产品推荐

