首页 > 解决方案 > 如何从功能分支中删除旧提交?

问题描述

我有feature2分支,它是这样创建的:

develop -> feature1(branched from develop) -> feature2(branched from feature1)

feature1已经合并,现在我正在尝试合并feature2分支。但是在提交历史和“更改”选项卡中,我看到了 feature1 分支的更改:

1. Commit to feature2
2. Commit to feature2
3. Commit to feature1
4. Commit to feature1

那么,如何在第二次提交之前删除所有内容?就像feature2分支是从哪里分支出来的develop?这使审查有点困难,因为我在“更改”选项卡中看到了旧代码

标签: gitgitlab

解决方案


重新定位feature2develop删除您不想要的提交:

# while on feature2:
git rebase -i develop

交互式 rebase 将打开一个文本编辑器,允许您指定保留哪些提交以及删除哪些提交:

pick Commit 1
pick Commit 2
pick Commit 3
pick Commit 4

文本编辑器中的注释告诉您可以做什么,但在您的情况下:

pick Commit 1
pick Commit 2
drop Commit 3
drop Commit 4

如果feature2已经被推送,则需要强制推送分支:

git push origin HEAD --force

警告:如果其他人的分支基于feature2. 小心并先与您的队友交谈!


推荐阅读