1

我创建了一个新功能。我提交了代码审查,我被要求将其分成两部分,然后重新提交。我现在完成的第一部分是新的 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,所以我可以记住新功能在代码中的哪个位置集成,并且可以根据需要进行更新。

4

1 回答 1

1

根据您的描述,我想我会选择两种方式中的一种。这取决于之间进行了哪些更改/如何进行更改AB因此很难在没有看到代码的情况下说什么最有效。

选项一是创建一个新分支(比如C),然后从和A之间的提交中挑选您想要的 API 更改。AB

A选项二是撤消和之间的所有删除(您现在想要恢复)B。首先要做的是创建一个备份分支,这样无论你怎么搞砸,倒带和重新开始都很简单(例如git branch B.mybackup B)。然后进行交互式变基(例如git checkout B; git rebase -i A),在其中删除删除要返回的代码的提交。

于 2013-09-25T23:49:37.357 回答