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