场景

有时候我们在多分支并行开发时,经常碰到开发分支的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到另一个分支相关推荐

  1. Git合并特定commits 到另一个分支

    合并某个分支上的单个commit 首先,用git log或GitX工具查看一下你想选择哪些commits进行合并,例如: dd2e86 - 946992 -9143a9 - a6fd86 - 5a60 ...

  2. Git:合并特定commits 到另一个分支

    经常被问到如何从一个分支合并特定的commits到另一个分支.有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用g ...

  3. git如何合并指定文件内容_Git合并指定文件到另一个分支

    经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...

  4. git合并指定文件到另一分支

    经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...

  5. git合并多个commit成为一个commit

    git合并多个commit成为一个commit 在git使用中,可能会在合并代码的时候有大量的commit,如何能在合并分支的时候将许多commit转化为1个commit呢,可以使用以下命令: git ...

  6. git cherry-pick 同步修改到另一个分支

    我们在开发中有时会遇到,需要将另一个分支部分修改同步到当前分支. 如下图,想把 devA 分支中 commit E 和 F,同步到下面绿色的 devB 分支中. 这时候就可以使用 git cherry ...

  7. Git 将本地的一个分支上的代码合并到本地的另一个分支

    第一步:先切换到需要合并代码的哪一个分支上 第二步:点击"VCS-->Git-->Merge Changes"选择需要合并的代码分支

  8. GIT合并特定commit

    Git合并特定commits 到另一个分支 标签: gitmerge合并特定commit单个commit 2014-12-25 14:13 21570人阅读 评论(4) 收藏 举报 分类: Git(1 ...

  9. 使用git rebase和merge合并特定commits到master分支

    可能大家知道如何使用cherry-pick从一个分支合并特定的commits到另一个分支,但是这个方法不能保留原始的提交信息(比如提交时间线等),而如果要保留合并过来的commits的所有提交信息,那 ...

最新文章

  1. “反机器学习”:人工智能突破的关键是“遗忘”
  2. 注解 java 反射_java注解和反射
  3. 解决TreeView中使用JavaScript完成CheckBox全选的办法
  4. 嵌入式处理器 cisc risc_RISC-V能否“重构”芯片产业格局
  5. 一文入门 Kafka
  6. 字符串排序java_利用Java程序将字符串进行排序与拼接
  7. 宏基平板电脑_2020年推荐:蒲城二手笔记本电脑回收价格联想戴尔华硕上门回-老友网...
  8. linux 用户管理和帮助命令
  9. tlc5620输出三角波流程图_[笔记].串型DAC TLC5620生成锯齿波、三角波实验,Verilog版本...
  10. 诹图系列(3): 条形图
  11. linux 进程 cpu 100,清理linux中占用CPU 100%的病毒
  12. 各大网站网页代码_清明节各大网站实现变灰效果(一行代码搞定)
  13. 20210924 python 技术点
  14. C语言面试题 - 指针概念
  15. centOS7中安装tecplot_ex_2015r2_linux64
  16. python excel 设置行高与列宽
  17. 【Python】爬虫-----下载B站视频
  18. split().reverse().join()放一起 好记很多
  19. activity启动流程或工作流程
  20. mysql和pg数据库表备份及还原

热门文章

  1. Tree Shaking概念详解
  2. git拷贝代码上传到自己的gitlib
  3. 生成网络之Flow-based Generative Model
  4. 记录一次Unsupported Media Type解决方案
  5. DedeCMS:数据库密码和数据库连接失败解决方法
  6. [易飞]Yifei.config无法保存报表数据库,报表数据库连接失败
  7. Win10启动windows audio服务失败解决方案
  8. jq选择器和过滤器总结
  9. python安装包遇到的报错(PyCharm)
  10. ubuntu 安装中文字库_Ubuntu安装中文字体及使其生效