首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >git压缩较旧的提交(不是最后一个)

git压缩较旧的提交(不是最后一个)
EN

Stack Overflow用户
提问于 2019-05-23 02:10:03
回答 1查看 7K关注 0票数 20

我有一个非常混乱的git历史。我想压缩一堆较老的提交(不包括最后一个)。

我知道如何压缩我的最后一次n提交。但这次不同。在这里,我连续提交n1n2,我想把它压缩成一个,而在n2之后,我有一个提交的历史,我想保留到最后一个。

所以,如果我当前的历史是这样的:

---- n1 --- n2 -------- m

我想将n1压缩为n2,使其最终如下所示:

---- n1n2 -------- m

其中n1n2是包含从n1n2的压缩内容的单个提交。

我该怎么做呢?从n2m的历史后果是什么?

也就是说,根据我想做的事情,从n2 m 到的每次提交的哈希是否会发生变化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 02:24:17

您可以根据the docsthis blog post进行交互式的rebase。

  1. 启动交互式rebase:

git rebase -i HEAD~n

(其中n表示要追溯到历史的多远)

  • 将打开您的默认编辑器。在顶部,将以相反的顺序显示您最新的n提交的列表。例如:

pick a5f4a0d commit-1 pick 19aab46 commit-2 pick 1733ea4 commit-3 pick 827a099 commit-4 pick 10c3f38 commit-5 pick d32d526 commit-6

  • Specify squash (或快捷方式s)用于要压缩的所有提交。例如:

选择a5f4a0d提交-1选择19aab46提交-2压缩1733ea4提交-3压缩827a099提交-4选择10c3f38提交-5选择d32d526提交-6

Git直接在其前面应用该更改和更改,并使您合并提交消息together.

  • Save和exit。

  • Git将应用所有更改,并再次打开编辑器以合并三条提交消息。您可以修改您的提交消息,或者让它保持原样(如果是这样的话,所有提交的提交消息将被连接起来)。

  • ,你的任务完成了!您选择的提交都将与前一个提交一起压缩。
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56262651

复制
相关文章

相似问题

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