当前位置: 首页 > 知识库问答 >
问题:

git - 如何合并分支上部分几个连续的commit为一个commit到主分支上?

壤驷敏学
2023-07-12

image.png

如上图,我想实现图上的效果,合并dev分支上历史连续提交的几个commit为一个到master主分支上,但是并不合并到最新

我知道直接合并分支到最新的提交为一个commit是以下代码

git merge --squash dev

但是不想合并到最新应该如何操作呢?

可能还会有下面的需求
image.png

将上面不同的连续几个分别合并成几个commit到master上

共有3个答案

支华池
2023-07-12

如果是你这种一段一段连续的,可以参考git rebase,但是我印象中rebase有时候好像会自动合在后面,不能把好几个commit合在一起;

还有一种就是format-patch,把你要的commit打成patch,然后apply到master,攒够你就commit一次

燕鸿波
2023-07-12

git rebase 可以合并多个 commit

哈沛
2023-07-12
  1. 使用git rebase先把几个commit合并成一个,再merge过去
  2. 先merge过去,然后再把这几个commit使用git rebase合并成一个commit

PS:不要问我git rebase怎么用,请自行查资料学习。

 类似资料:
  • 我们将尝试在github中创建一个工作流,其中每个票据都是master的分支 票据完成后,工作将合并到暂存中,在暂存中执行回归和集成测试,然后将其合并到主控中。 一个团队领导提出了合并后旧票分支的问题。 我发现了这个脚本,想知道它是否能在我们的环境中工作。我们只想删除已经合并到主目录中的分支。

  • 问题内容: 我正在寻找一种自动将Master分支合并到一个或多个开发分支的方法。换句话说,我想在多个项目中每天将团队开发部门与Master同步。 我一直在考虑使用Jenkins,但经验不足。Jenkins是否可以通过添加多个存储库URL,然后在配置中指定“合并到的分支”来提供此功能?与合并问题相比,我不太关心项目的构建。詹金斯将如何应对失败的合并? 詹金斯会很理想,但是如果有其他方法,我很想听听。

  • 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤: 开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理: 切换到你的线上分支(production branch)。 为这个紧急任务新建一个分支,并在其中修复它。 在测试通过之后,切换回线上

  • 我们介绍一下merge的特殊选项:squash 用这个选项指定分支的合并,就可以把所有汇合的提交添加到分支上。 主要使用的场合: 汇合主题分支的提交,然后合并提交到目标分支。

  • 相对来说,我是git的新手。我们的组织使用叉子

  • 如何知道GitHub上一个blob的版本是在哪个分支上? 举例: 我们知道34f2265010a55f425e365bc61c5d8c2b3175b62a 是这个文件:bucketlist.ts的一个commit版本,但是我们如何才能知道此commit是属于哪个分支呢?