Git 当基于的功能不再存在时,将功能流向分支开发

Git Flow Feature to branch Develop when Feature it was based off doesn't exist anymore

我有点吃不消了。

我不小心将一个功能(我们称之为 A)基于另一个功能(我们称之为 B)而不是开发分支。同时,功能A完成并合并开发。

现在我想完成功能 B,但我在 Sourctree 上收到以下错误

Fatal: The base 'feature/A' doesn't exists locally or is not a branch. Can't finish the feature branch 'feature/B'.

我试过:git rebase --onto develop feature/B

但这只是删除了 B 中的更改并将开发推送到分支上,我很幸运我的遥控器捡到了它并且我能够 pull/sync 我在遥控器上所做的更改以恢复上的内容B.

有什么方法可以让我恢复过来吗?以某种方式更改 B 基于 A 的引用,以说 B 基于开发(已经包含 A)?

:(

Rebase 可以正常工作,但你必须告诉它 从 rebase 中跳过哪些修订。如果该分支消失了,请使用您分支下方的基本分支的最新修订版 ID(可以通过简单的 git log 看到):

git rebase --onto develop id-last-revision-of-A feature/B

在 Sourcetree 中,如果您导航至设置 -> 编辑配置文件(在记事本中打开),您可以更改:

[gitflow "branch.feature/B"]
    base = branch.feature/A

至:

[gitflow "branch.feature/B"]
    base = develop

这将允许您在分支开发上完成功能(为任何潜在的冲突做好准备。在我的情况下,我有 none 因为功能 A 已经在开发分支中)

只要确保您不会像我一样错误地将一个功能基于另一个功能!