我有一个非常混乱的git历史。我想压缩一堆较老的提交(不包括最后一个)。
我知道如何压缩我的最后一次n
提交。但这次不同。在这里,我连续提交n1
到n2
,我想把它压缩成一个,而在n2
之后,我有一个提交的历史,我想保留到最后一个。
所以,如果我当前的历史是这样的:
---- n1 --- n2 -------- m
我想将n1
压缩为n2
,使其最终如下所示:
---- n1n2 -------- m
其中n1n2
是包含从n1
到n2
的压缩内容的单个提交。
我该怎么做呢?从n2
到m
的历史后果是什么?
也就是说,根据我想做的事情,从n2
m
到的每次提交的哈希是否会发生变化?
发布于 2019-05-23 02:24:17
您可以根据the docs和this blog post进行交互式的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
squash
(或快捷方式s
)用于要压缩的所有提交。例如:选择a5f4a0d提交-1选择19aab46提交-2压缩1733ea4提交-3压缩827a099提交-4选择10c3f38提交-5选择d32d526提交-6
Git直接在其前面应用该更改和更改,并使您合并提交消息together.
https://stackoverflow.com/questions/56262651
复制相似问题