如何仅合并分支中的最新n次提交,因为该分支中较早的提交是不受欢迎的?

时间:2018-01-04 14:36:57

标签: git merge branch

非常多产 - 但一般都是git和版本控制的绿色 - 程序员加入了该项目,并推出了一个分支(实际上很多)约30次提交。

前10个左右的提交是我们在主分支中不想要的变化......永远。他们创建虚拟组件和文件,提交不编译的代码,甚至提交“Test”等提交消息。和“固定。”。

分支中接下来的10个左右的提交尝试恢复前10个提交中所做的更改。提交消息变得更具描述性,但这些提交实际上只是尝试删除在前十次提交中添加的文件,删除注释等。如果没有手工完成每一次提交,我不相信这个过程是完美的,并且在前10个中创建的所有内容都在中间10中被完全删除。

最后10次提交中有实际有用的更改。新的程序员没有学习正确的分支,这会让我的日子变得更轻松,直到这些最后的10次提交被添加到无用的分支并被推到远程。

所以,现在我的任务是将每个分支的最后10个左右的提交合并到master(或某个中间分支,然后是master)中。这个具有相似属性的程序员创建了五个左右的其他功能分支(告诉你,多产)。他正在将分支与无用的“测试”提交合并到他创建的每个新分支中,因此所有这些分支的前20个左右提交都是绝对垃圾。由于他主要参与我们团队的最佳实践,他将继续对未来的每个分支机构做出更多承诺。

合并有用提交并永久丢弃无用提交的最佳做法是什么?

我看过git cherry pick merge,但无法克服这个“打破git的合并功能”的神秘评论。那么,我最终会得到一个无法正确合并的主分支,否则会被“破坏”?

1 个答案:

答案 0 :(得分:1)

您可以使用git rebase将您想要的提交应用到master。或者,您可以在源分支上使用交互式rebase git rebase -i来删除不需要的提交,并像往常一样合并到master。