git cherry pick教程


于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。

这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。

cherry-pick

假如现在有两个分支v1.0,v1.1。
v1.0有如下commit:

commit 4d3b38f3e6b9f49776f6e2d2861f0425e10df8d6 (HEAD -> v1.0) Author: bin <bininhere@163.com> Date: Tue Mar 19 10:33:43 2019 +0800 feature5 commit 65ad383c977acd6c7e7bed486bbf3631851a9eda Author: bin <bininhere@163.com> Date: Tue Mar 19 10:30:44 2019 +0800 feature4 commit a2a438f2652166f13a6a2aa36f447968fff3b15d Author: bin <bininhere@163.com> Date: Tue Mar 19 10:30:09 2019 +0800 feature3 

现在v1.1需要合并feature4的功能,但不能合并feature3,feature5,怎么办?
把代码复制过来吗?不!用cherry-pick

git cherry-pick  65ad383c977acd6c7e

如果文件有冲突,cherry-pick 会中断,
你解决冲突后,使用git add添加冲突文件,使用git cherry-pick --continue完成cherry-pick操作。
或者使用git cherry-pick --abort中断操作。

如果你cherry-pick的是别人分支的commit,可能会遇到错误fatal: bad object ...,那是因为git cherry-pick是本地特性,本地要有这个commit才可以被git cherry-pick。如果没有这个commit id,就会出现这个错误。


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM