如何从通过Git在子分支中删除的祖先恢复更改?
我创建了一个新功能。我把它提交给代码审查,要求我把它分成两部分,然后重新提交。我现在完成的第一部分是新的API。第二部分是将新API集成到现有代码中。以下是我的git回购目前的样子:如何从通过Git在子分支中删除的祖先恢复更改?,git,Git,我创建了一个新功能。我把它提交给代码审查,要求我把它分成两部分,然后重新提交。我现在完成的第一部分是新的API。第二部分是将新API集成到现有代码中。以下是我的git回购目前的样子: o-o-A-o-o-o-o-o-o-o-o-o-o-B | | Original API with Feature Feature Integration Removed A是我最初从事的分支B是我创
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
,这样我就可以记住新功能在代码中的集成位置,并且可以根据需要进行更新。根据您的描述,我想我可以选择两种方式之一。这完全取决于A
和B
之间做了哪些更改/如何更改,因此如果不查看代码,很难说什么最有效
选项一是从a
创建一个新的分支(比如C
),然后从a
和B
之间的提交中选择所需的API更改
选项二是撤消
A
和B
之间的所有删除操作(您现在想要恢复)。第一件事是创建一个备份分支,这样无论你怎么搞砸,都可以简单地倒带并重新开始(例如,git branch B.mybackup B
)。然后做一个交互式的rebase(例如,git checkout B;git rebase-i A),在这里删除删除您想要返回的代码的提交。从您的描述中,我想我可以选择两种方法之一。这完全取决于A
和B
之间做了哪些更改/如何更改,因此如果不查看代码,很难说什么最有效
选项一是从a
创建一个新的分支(比如C
),然后从a
和B
之间的提交中选择所需的API更改
选项二是撤消A
和B
之间的所有删除操作(您现在想要恢复)。第一件事是创建一个备份分支,这样无论你怎么搞砸,都可以简单地倒带并重新开始(例如,git branch B.mybackup B
)。然后执行一个交互式的rebase(例如,git checkout B;git rebase-ia
),在这里删除删除您想要返回的代码的提交