2012-06-13 120 views
1

如果另一位开发人员在分支DEVELOPER_A上分支出来,并且在该分支上进行了大量提交,那么当他完成时,我想将他的工作合并到master上。但我不希望他所有的小提交都显示在主分支历史记录上,只关心最后的提交。 那么在合并该分支时,有没有办法在分支DEVELOPER_A上“挤压”他的历史记录?合并git分支时,如何避免提交日志分支?

我能得到developer_A分支补丁,并适用于主,但恐怕git会失去轨道的事实,结果从developer_A分支合并,只是认为这是一些独立的变化

谢谢 杨

+0

可能的重复项:http://stackoverflow.com/questions/5308816/how-to-use-git-merge-squash,http://stackoverflow.com/questions/9599411/git-merge-no-commit-壁球差。 –

回答

2

你可以用几种方式做到这一点,但最明显的是使用压扁的合并。

git merge --squash <other_branch> 
git commit 

注意,git会预填充合并提交的消息从压扁提交的日志消息,但你可以自由地修改或删除的邮件,以适应自己。

0

大多数时候你想清理历史,而不是只是把所有的东西混在一起。该工具是git rebase(非常谨慎地使用,并且从未在发布的东西上使用,因为更改历史会为下游造成严重破坏)。

OTOH,有一个详细的历史记录(微提交)在追踪bug(看git bisect)是非常有用的。