git - 如何删除此合并分支?
问题描述
我有 2 个分支:beta和master。B1
,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
解决方案
如果您想从主分支中删除提交B1
,B2
您可以进行交互式变基并删除它们。根据您的日志,您可以HEAD~3
像这样启动 rebase:
git rebase -i HEAD~3
在编辑器中,为提交写d
/和. 并写/提交:drop
B1
B2
p
pick
M3
d cf5fffb B1
d 6c904b2 B2
pick e94af69 M3
在此之后,您的历史记录如下图所示。已更改的提交哈希M3
,因为其父级不同。您会在beta分支上看到提交B1
,而不再在master上,而仍在master上。B2
M3
* cdd0cd5 (HEAD -> master) M3
| * 6c904b2 (beta) B2
| * cf5fffb B1
|/
* a7b50aa M2
* eb077fe M1
如果您只想删除beta分支但保留提交B1
并B2
在master分支上,您可以像这样简单地删除beta分支:
git branch -d beta
在此之后,您的历史记录如下所示:
* e94af69 (HEAD -> master) M3
* 6c904b2 B2
* cf5fffb B1
* a7b50aa M2
* eb077fe M1
推荐阅读
- reactjs - 使用 Storybook.js 提供静态资产
- asp.net - 您如何构建物理和逻辑/解决方案文件夹?
- flutter - 将数据传递给 initState 函数
- javascript - 在 Firestore javascript 中保存为字符串的数字
- css - 如何将元素设置为高度 0px?
- .htaccess - 我使用 .htaccess 创建了一个动态子文件夹,但浏览器在根文件夹中找不到图像
- r - 调整列大小后删除 ggplot2 图上方和下方的空白
- git - 对 git blame 使用与其他命令相同的提交缩写长度
- r - 通过重复行转换数据框并创建两个变量的变量计数值
- javascript - 减少使用 NodeJs 复制文件夹的时间