我同时在一个Feature分支和Master分支上工作。
几天前我合并了我的Feature到Master。在此基础上还进行了一些提交。
但后来我意识到这个功能不再需要了。因此,我需要删除由于Feature分支而合并的提交。
检查后,我意识到我有3个选项Rebase, Revert和Cherry-pick。 我将来可能需要提交Feature分支。因此,如果我将来需要,它的提交需要在提交历史/git日志等中可见。因此,我很困惑上述三个选项中选择哪一个。注意:所有的提交都被推送到master。这对我的选择有什么影响吗?
因为您的分支已经发布了,所以您可能希望避免使用交互式重基作为解决方案。交互式重基将允许您从Master
中删除您不想要的Feature
提交。但这将以重写Master
的历史为代价,这可能会产生负面影响。
我认为你最好的选择是git revert
Feature
提交,你不想。
使用:
git revert <SHA-1>
,其中<SHA-1
>是要恢复的提交。如果您有一系列按顺序提交,那么您可以使用:
git revert --no-edit <SHA-1>..<SHA-1>
使用两个提交范围
没有办法将提交保存在历史记录中供以后使用。提交要么在,要么不在。
如果您想稍后恢复提交,您可以合并或选择性地选择它们,或者您也可以还原还原提交(@1615903)。