Git使用小技巧【cherry-pick灵活运用】

本文详细介绍了Git的cherry-pick命令,用于从一个分支选择特定的提交并应用到另一个分支。内容包括基本用法,如通过提交哈希或范围拣选提交,以及如何处理代码冲突。通过实例展示了如何合并连续的提交记录,并解释了为何gitcherry-picka1..e1只会合并4次而非5次。文章提供了实际操作指导,帮助读者更好地理解和运用cherry-pick。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用场景

一、基本命令

(1)git cherry-pick A 【参数A可以是提交的哈希值,也可以是分支名,代表该分支的最新提交】

(2)git cherry-pick A..B 【将A到B之间所有的提交都转移过去,但不包含A,A必须早于B】

(3)git cherry-pick A^..B  【A到B之间连续且包含A】

代码冲突:

(1)git cherry-pick --continue 【再解决完代码冲突后,将修改好的文件重新add到暂存区,然后执行 --continue 继续执行】

(2)git cherry-pick --abort 【发生代码冲突后,放弃合并,回到操作前的样子】

(3)git cherry-pick --quit 【发生代码冲突后,退出cherry-pick, 但是不会操作前的样子】

二、实践操作

现在有两个分支,

假设此图是分支为branch_1, 有5次提交记录, 版本号分别为a1..e1。

假设此图是分支为branch_2, 有2次提交记录。

首先使用 git cherry-pick branch_2, 使用分支名进行挑拣,会将branch_2分支最新的log记录提交

使用git log查看,会看到已经把对方的最后一次提交给合并过来了,当然使用版本号也是一样的效果

那如果需要合并的提交太多,且是连续性的,该怎么做呢?

在branch_2分支上执行git cherry-pick a1..e1, 将b1, c1, d1, e1版本号的提交拣选也就是合并过来。

 此时再执行git log, 会看到明明cherry-pick a1..e1, 之间应该是总共有5次提交的,却只有4次提交被合并过来,因为git cherry-pick a1^..e1才会将前五的记录都合并过来。,

 

 

推荐阅读文献:

http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值