git - 如何从功能分支中删除旧提交?
问题描述
我有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
?这使审查有点困难,因为我在“更改”选项卡中看到了旧代码
解决方案
重新定位feature2
并develop
删除您不想要的提交:
# 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
. 小心并先与您的队友交谈!
推荐阅读
- r - 如何根据条件更改列表中多个数据框中的列名称?
- reactjs - 使用其他钩子时 usePrevious 可靠吗?
- c++ - 我无法让我的 MergeSort 实现运行
- javascript - 使用 AJAX 在传单上重新加载热图
- java - 如何在 Android 上为 Highcharts 正确配置 DateTime 轴?
- hibernate - 比较 dateCreated 的查询不适用于在 Grails 3.3.10 的测试事务中创建的测试数据
- matplotlib - 从 matplotlib.animation 加载“FuncAnimation”时遇到问题
- flutter - 我该如何解决颤振错误
- javascript - 如何在页面滚动上创建画布动画
- arrays - 如何在 Ruby 中将数组添加到 CSV 文件的列中?