如果另一个开发人员在分支DEVELOPER_A上分支,并在该分支上进行了大量提交,那么当他完成时,我想将他的工作合并到master上。但我不希望他的所有小提交都出现在主分支历史中,只关心最后一次提交。 那么当合并那个分支时,有没有办法在分支DEVELOPER_A上“压缩”他的历史?
我可以在developer_A分支上获得补丁,并应用于master,但我担心git会忘记结果是从developer_A分支合并的事实,而只是认为这是一些独立的更改
由于 杨
答案 0 :(得分:3)
您可以通过多种方式执行此操作,但最明显的是使用压缩合并。
git merge --squash <other_branch>
git commit
请注意,git会使用来自压缩提交的日志消息预先填充您的合并提交消息,但您可以自由编辑或删除适合自己的消息。
答案 1 :(得分:0)
大多数时候你想要清理历史,而不仅仅是将所有东西都放在一起。这个工具就是git rebase(非常小心使用,从不发布的东西,因为改变历史会为你的下游造成破坏)。
OTOH,有一个详细的历史记录(微提交)非常有用,可以追逐bug(看看git bisect)。