是否有选择性地删除git提交的正确方法?

时间:2016-05-05 10:41:11

标签: git git-branch branching-and-merging git-commit

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

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

问题是有一段时间分支已经用DEV保持更新,现在有来自其他分支的合并提交,不应该合并到MASTER。

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

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

问题是:

是否有预先定义的方法来执行此操作?如果有的话,这种方法在哪里?

我可以研究一下git,找到“我的方式”来安全地做到这一点,但这听起来像是一个经典的案例,可能会在任何标准的开发过程中发生,而根据我的经验,通常已经有了前(和英雄)开发人员在寻求可靠的开发方法时所概述的预定义方法。

如果没有可用或已知的方法,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

您是否可以修改分支的历史记录?如果是这样,我可能会推荐您interactive rebase的分支。

git rebase -i <commit_hash>

提交哈希是您在分支上进行的第一次提交。您可以选择您关注的提交并跳过您不想要的提交(如果您不想提交,只需删除该行)。在交互式rebase之后,您将拥有一个仅包含要合并到master中的提交的分支。

将来,请注意在您的分支机构中包含您不希望与分支机构一起发布的代码,这样您就可以避免这些额外的工作。