如何删除合并分支和压缩提交

时间:2016-01-20 04:23:32

标签: git

我很难尝试压制这些过多的提交。 当我运行git log --pretty=oneline时,以下顺序会显示以下项目:

e44e012 Merge branch 'branch A' of https://github.com/ into branch A 4176991 Commit D 767583f Commit C f5a4c21 Commit B 83bb8e1 Commit A

我想将这些压缩成一个提交并摆脱提交合并。当我运行git rebase -i HEAD~2时,会出现提交A-D,但提交合并不会显示。知道为什么吗?当我尝试运行git rebase -i HEAD~5时,我会提交A-D以及其他一些提交,但合并提交仍然不会显示为压缩选项。

* e44e012 Merge branch 'Branch A' of https://github.com/ into Branch A |\ | * 767583f Commit C | * f5a4c21 Commit B | * 83bb8e1 Commit A * | 4176991 Commit D |/

1 个答案:

答案 0 :(得分:1)

键入git rebase -i HEAD~5会显示如下列表:

pick 83bb8e1 Commit A
pick f5a4c21 Commit B
pick 767583f Commit C
pick 4176991 Commit D
pick e44e012 Merge branch 'branch A' of https://github.com/ into branch A

请注意,最旧的提交将显示在列表的 top 中,这与git log向您显示的顺序相反。

如果要将合并提交压缩,并将提交B到D提交到提交A,则将文件更改为如下所示:

pick 83bb8e1 Commit A
squash f5a4c21 Commit B
squash 767583f Commit C
squash 4176991 Commit D
squash e44e012 Merge branch 'branch A' of https://github.com/ into branch A

保存文件,关闭它,然后键入git rebase --continue以完成变基。