Git合并指定commits到另一个分支
场景
有时候我们在多分支并行开发时,经常碰到开发分支的bugfix需要合入之前的版本或其他分支中。有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了。
处理办法
1、合并某个分支上的单个commit
首先,用git log查看一下你想要进行合并commit
commit fd1f9e290fb199ba8eada61a8aa45c347b2a14b8 [master]commit 2a92a024e6deb1b05430f5044e7fde722e06e9c1 [feature]
比如,feature 分支上的commit 2a92a024非常重要,它含有一个bug的修改。无论什么原因,你现在只需要将2a92a024合并到master,而不合并feature上的其他commits,所以我们用git cherry-pick命令来做:
git checkout master
git cherry-pick 2a92a024e6deb1b05430f5044e7fde722e06e9c1
现在2a92a024就被合并到master分支,并在master中添加了commit(作为一个新的commit)。cherry-pick 和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。
2、合并某个分支上的一系列commits
在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase 更适合。还以上例为例,假设你需要合并feature分支的commit 76cada12 ~ 2a92a024到master分支。
首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:
git checkout -b newbranch 2a92a024
然后,rebase这个新分支的commit到master(–onto master)。76cada12^ 指明你想从哪个特定的commit开始。
git rebase --onto master 76cada12^
得到的结果就是feature分支的commit 76cada12 ~ 2a92a024都被合并到了master分支。
参考链接
Git合并指定commits到另一个分支相关推荐
- Git合并特定commits 到另一个分支
合并某个分支上的单个commit 首先,用git log或GitX工具查看一下你想选择哪些commits进行合并,例如: dd2e86 - 946992 -9143a9 - a6fd86 - 5a60 ...
- Git:合并特定commits 到另一个分支
经常被问到如何从一个分支合并特定的commits到另一个分支.有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用g ...
- git如何合并指定文件内容_Git合并指定文件到另一个分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- git合并指定文件到另一分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- git合并多个commit成为一个commit
git合并多个commit成为一个commit 在git使用中,可能会在合并代码的时候有大量的commit,如何能在合并分支的时候将许多commit转化为1个commit呢,可以使用以下命令: git ...
- git cherry-pick 同步修改到另一个分支
我们在开发中有时会遇到,需要将另一个分支部分修改同步到当前分支. 如下图,想把 devA 分支中 commit E 和 F,同步到下面绿色的 devB 分支中. 这时候就可以使用 git cherry ...
- Git 将本地的一个分支上的代码合并到本地的另一个分支
第一步:先切换到需要合并代码的哪一个分支上 第二步:点击"VCS-->Git-->Merge Changes"选择需要合并的代码分支
- GIT合并特定commit
Git合并特定commits 到另一个分支 标签: gitmerge合并特定commit单个commit 2014-12-25 14:13 21570人阅读 评论(4) 收藏 举报 分类: Git(1 ...
- 使用git rebase和merge合并特定commits到master分支
可能大家知道如何使用cherry-pick从一个分支合并特定的commits到另一个分支,但是这个方法不能保留原始的提交信息(比如提交时间线等),而如果要保留合并过来的commits的所有提交信息,那 ...
最新文章
- “反机器学习”:人工智能突破的关键是“遗忘”
- 注解 java 反射_java注解和反射
- 解决TreeView中使用JavaScript完成CheckBox全选的办法
- 嵌入式处理器 cisc risc_RISC-V能否“重构”芯片产业格局
- 一文入门 Kafka
- 字符串排序java_利用Java程序将字符串进行排序与拼接
- 宏基平板电脑_2020年推荐:蒲城二手笔记本电脑回收价格联想戴尔华硕上门回-老友网...
- linux 用户管理和帮助命令
- tlc5620输出三角波流程图_[笔记].串型DAC TLC5620生成锯齿波、三角波实验,Verilog版本...
- 诹图系列(3): 条形图
- linux 进程 cpu 100,清理linux中占用CPU 100%的病毒
- 各大网站网页代码_清明节各大网站实现变灰效果(一行代码搞定)
- 20210924 python 技术点
- C语言面试题 - 指针概念
- centOS7中安装tecplot_ex_2015r2_linux64
- python excel 设置行高与列宽
- 【Python】爬虫-----下载B站视频
- split().reverse().join()放一起 好记很多
- activity启动流程或工作流程
- mysql和pg数据库表备份及还原