git cherry pick教程
2020-08-23 08:26 youxin 阅读(1896) 评论(0) 编辑 收藏 举报于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。
这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2018-08-23 visual studio 2017 (vs2017安装)
2014-08-23 Creating a web server in pure C(c/c++ 写web server)
2014-08-23 lighttpd 介绍及安装
2014-08-23 《 UNIX网络编程》源码的使用
2014-08-23 linux netcat命令
2014-08-23 windows下使用远程工具登录虚拟机上的Linux、访问虚拟机上的服务 、端口转发、win7 telnet登陆虚拟机
2014-08-23 Ubuntu Telnet 配置(openbsd-inetd)