一个非常多产 - 但仍然是绿色的git和版本控制一般 - 程序员加入了该项目并推动了一个分支(实际上很多)有大约30个提交。
前10个左右的提交是我们在主分支中不想要的变化......永远。他们创建虚拟组件和文件,提交不编译的代码,甚至提交“Test”等提交消息。和“固定。”。
分支中的下一个10个左右的提交尝试恢复前10个提交中所做的更改。提交消息变得更具描述性,但这些提交实际上只是尝试删除前十次提交中添加的文件,删除注释等。如果不经过每次提交,我不相信这个过程是完美的,并且在前10个中创建的所有内容都在中间10完全删除。
最后的10个提交中有实际有用的更改。新的程序员没有学习正确的分支,这将使我的日子更容易,直到最后的10个提交被添加到无用的分支并推到远程。
所以,现在我的任务是将每个分支的最后10个左右的提交合并到master(或某个中间分支,然后是master)中。这个具有相似属性的程序员创建了五个左右的其他功能分支(告诉你,多产)。他正在将分支与无用的“测试”提交合并到他创建的每个新分支中,因此所有这些分支的前20个左右提交都是绝对垃圾。由于他主要参与我们团队的最佳实践,因此他将继续为这些分支机构中的每一个提供更多承诺。
合并有用提交并永久丢弃无用提交的最佳实践是什么?
我看过git cherry pick merge
,但无法克服这个“打破git的合并功能”的神秘评论。那么,我最终会得到一个无法正确合并或者被“破坏”的主分支吗?
您可以使用git rebase
将您想要的提交应用到master。或者,您可以在源分支上使用交互式rebase git rebase -i
来删除您不需要的提交,并像往常一样合并到master。