git cherry-pick 的作用与使用方法

cherry-pick是Git中的一项功能,用于从一个分支选择特定的commit应用到另一个分支。这在需要将个别代码改动移植到不同分支时非常有用。使用`gitcherry-pick<commit-id>`命令可以实现单个commit的移植,同时支持批量操作如`gitcherry-pickcommit1^..commit100`来合并指定范围的commit。如果遇到冲突,需手动解决后再进行提交。
摘要由CSDN通过智能技术生成

在实际开发过程中,将代码从一个分支转移到另一个分支是常见需求。

这时分两种情况:

  • 一种情况是,我们需要另一个分支的所有代码改动,那么就可以采用合并处理git merge
  • 另一种情况,我们只需要部分代码改动(某一个或多个 commit 提交),这时就可以采用 cherry pick

1 cherry-pick 的作用

cherry-pick ,精心挑选的意思,挑选一个我们需要的 commit 。

其作用:将在其他分支上的 commit 修改,移植到当前的分支。

2 使用场景

想在一个稳定的版本上,添加一个刚开发完成的版本中的某个功能,而非某个分支的所有代码。

可以使用 git cherry-pick <commit-id>命令,将这个功能相关的 commit 提取出来,合入稳定版本的分支上。

3 使用方法

每次只拉去一个 commit 记录:

git cherry-pick <commitID>

// 增加 -x 参数,表示保留原提交的作者信息进行提交
git cherry-pick -x <commitID>

当执行完 cherry-pick 之后,将会自动生成一个新的 commit 进行提交,也会有一个新的 commit ID。然后可以进行 git push 到远程分支,进行创建合并请求。顺利的话,正常合并就可以。如果遇到冲突,解决冲突即可。

支持批量 cherry-pick

就是可以一次将一个连续的时间序列内的 commit ,设定一个开始和结束的 commit ,进行 cherry-pick 操作。

git cherry-pick commit1..commit100

// 可以看到,它的范围就是 commit1 到 commit100 之间所有的 commit,但是它这是一个(左开,右闭] 的区间,也就是说,它将不会包含 commit1 的 commit。

而如果想要包含 start-commit-id 的话,就需要使用 ^ 标记一下,就会变成一个 [左闭,右闭] 的区间,commit1 和 commit100 都会合并到当前分支。

git cherry-pick commit1^..commit100

注意:上面讲到cherry-pick命令每拣选一个commit就会提交一次生成一个新的commit id。 如果我们想让每个commit 拣选后暂缓提交,等到所有commit都拣选完成后,自己手动commit。

那么可以加上 -n 选项在 commitID 前面,这样到最后可以进行一次提交

git cherry-pick -n commit1^..commit100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值