我创建了一个新功能。我提交它进行代码审查,我被要求将其分成两部分,然后重新提交。我现在完成的第一篇文章是新的API。第二部分是将新API集成到现有代码中。这是我的git repo目前的样子:
o-o-A-o-o-o-o-o-o-o-o-o-o-B
| |
Original API with Feature
Feature Integration Removed
A
是我最初工作的分支。 B
是我创建的一个分支,我删除了集成代码,只留下了新功能的API。
我现在想要恢复集成。 A
和B
之间的大多数中间步骤都是删除我现在想要带回来的代码。
为了使问题复杂化,API在B
完成时确实发生了一些变化。我主要想要恢复A
,以便我能记住代码中新功能的集成位置,并且我可以根据需要更新内容。
答案 0 :(得分:1)
根据你的描述,我想我会选择其中一种方式。这取决于A
和B
之间进行了哪些更改/如何更改,因此很难说在没有看到代码的情况下哪些更有效。
选项一是从C
创建一个新分支(比如A
),然后在A
和{{1}之间的提交中挑选您想要的API更改}。
选项二是撤消B
和A
之间的所有删除(您现在想要的删除)。首先要创建一个备份分支,这样无论你如何搞砸,都很容易倒带并重新开始(例如B
)。然后执行交互式rebase(例如git branch B.mybackup B
),删除删除所需代码的提交。