首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并上游分支后的Squash提交

合并上游分支后的Squash提交
EN

Stack Overflow用户
提问于 2019-08-13 14:11:27
回答 1查看 165关注 0票数 1

在我的feature分支中,历史记录如下所示

来自主->的分支添加提交->合并主->上的最新提交添加更多提交

在“添加提交”部分添加了一些大文件,然后在“添加更多提交”中删除了这些文件。我想压缩特性分支上第一组和第二组提交中的一些提交,以释放此空间。不幸的是,从master合并似乎会使这一点变得困难。

这似乎与其他类似的问题不同,因为两个分支仍然是分开的,但我只是合并了master的最新提交。feature分支只由我使用,所以我可以重写它的历史记录。

EN

回答 1

Stack Overflow用户

发布于 2019-08-13 20:08:10

我将绘制您的场景,以便更容易地讨论:

代码语言:javascript
复制
      master
      v
A--B--C
 \     \
  D--E--M--F--G
              ^
              feature

现在,为了便于讨论,让我们假设您想要将提交G (发生在合并之后)压缩为提交E (发生在合并之前)。

正如@iBugcomment中指出的那样,最简单的方法-因为您拥有分支-是简单的压缩,然后重做合并,因为在默认情况下,交互式rebase将丢弃选定范围内的所有合并提交。

但是,如果您真的想让M保持在原来的位置,可以尝试使用--rebase-merges选项执行迭代活动rebase:

代码语言:javascript
复制
git checkout feature
git rebase -i --rebase-merges D

documentation

使用--rebase-merges时,

将通过重新创建合并提交来尝试保留要重新建立基础的提交中的分支结构。

但是,请记住:

这些合并提交中任何已解决的合并冲突或手动修改都必须手动解决/重新应用。

因此,在这种情况下,--rebase-merges为您带来的唯一好处就是,在您挤压提交之后,合并提交将保留在feature分支的历史记录中的相同位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57472022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档