有没有合适的方法可以选择性地删除git提交



假设我有一个MASTERDEV分支,一个具有代码的稳定/发布版本(master),另一个不稳定(dev),具有正在进行的未完成工作。

我开始编写一个从DEV分支的测试套件,现在应该将其包含(或"发布")到master中。

问题是,在一段时间内,分支一直使用DEV进行更新,现在有来自其他分支的合并提交不应该合并到MASTER。

提交被正确标记,我们可以确切地知道它们是什么。

要包含在发行版中的新代码是测试套件的一部分,因此它不会更改源代码,因此从源代码中回滚所有不需要的更改/提交应该不会有任何大问题。

问题是:

是否有预定义的方法来做到这一点?如果有的话,这种方法概述在哪里?

我可以在git上进行一些研究,以找到安全地做到这一点的"我的方法",但这听起来像是任何标准开发过程中都可能发生的事情的经典案例,根据我的经验,通常已经有一个预定义的方法论,由前(英雄)开发人员在寻求坚实的开发方法论时概述。

如果没有可用的或已知的方法,任何建议都将不胜感激。

您可以修改分支的历史记录吗?如果是这样的话,我可能会建议对您的分支机构进行交互式重新设置。

git rebase -i <commit_hash>

提交哈希是您在分支上进行的第一次提交。你可以选择你关心的提交,跳过你不想要的提交(如果你不想要提交,只需删除这一行)。在交互式重新基础之后,您将有一个分支,其中只包含要合并到master中的提交。

将来,要小心在分支中包含不想与分支一起发布的代码,这样就可以避免做这些额外的工作。

最新更新