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