首页 > 解决方案 > 如何删除此合并分支?

问题描述

我有 2 个分支:betamasterB1,B2是从beta分支合并到master的提交。如何删除master分支上的合并分支但仍保留提交M3

e94af69 (HEAD -> master) M3
6c904b2 (beta) B2
cf5fffb B1
a7b50aa M2
eb077fe M1.

... 到 ...

e94af69 (HEAD -> master) M3
a7b50aa M2
eb077fe M1

标签: gitgithub

解决方案


如果您想分支中删除提交B1B2您可以进行交互式变基并删除它们。根据您的日志,您可以HEAD~3像这样启动 rebase:

git rebase -i HEAD~3

在编辑器中,为提交写d/和. 并写/提交:dropB1B2ppickM3

d cf5fffb B1
d 6c904b2 B2
pick e94af69 M3

在此之后,您的历史记录如下图所示。已更改的提交哈希M3,因为其父级不同。您会在beta分支上看到提交B1,而不再在master上,而仍在master上。B2M3

* cdd0cd5 (HEAD -> master) M3
| * 6c904b2 (beta) B2
| * cf5fffb B1
|/  
* a7b50aa M2
* eb077fe M1

如果您只想删除beta分支但保留提交B1B2master分支上,您可以像这样简单地删除beta分支:

git branch -d beta

在此之后,您的历史记录如下所示:

* e94af69 (HEAD -> master) M3
* 6c904b2 B2
* cf5fffb B1
* a7b50aa M2
* eb077fe M1

推荐阅读