@
codingKingKong 原则上我们只有决定要上线的功能才 Merge。
你想呀,因为 A 和 B 随时都跟随着 tip,所以 AB 自己的 tip 就是 dev+feature 的,只要跑通测试,任何时候都可以 Merge 进 dev。如果研究决定新版本只留 B 不留 A,那 A 就留到发布以后再 Merge 就行了。
就算 A 和 B 已经 Merge 了,想要剔出 A 当然也是可以的,两种做法。
1. 非处 x 女座:把 A 分支整个 Revert 掉,作为单个提交放在 tip 上。
Old -> Merge A -> Merge B -> Revert Merge A <- release-x.x
2. 处 x 女座:把历史记录重写掉
Old -> Merge A -> Merge B <- dev tip
首先把 dev reset hard 回 Old,然后把 B 重新 rebase 回 Old,再 Merge 回 dev,变成
Old -> Merge B <- dev tip
...\--->a1->a2->a3 <- A
然后把 A 和 dev 强推回仓库,再让每个人 fetch 一下就行了。
第二种做法要求大家都懂 Git,如果有人不会,还是用方法 1 好了。
如果用的是推荐的 Git flow 流程,也就是 master 部署,而 dev 开发的话,最差也就是重建 dev 分支,Rebase feature branch 然后重新 Merge 而已。Git 本身是很灵活的,怎么玩都行……