[英]How to git merge --squash so that github “network” diagram shows the merge
假设你有这个:
master: o--o--o
development: `o--o--o
我想将更改合并为一次提交(避免沿途的所有垃圾提交):
git checkout master
git merge --squash development
但是github网页显示了这个:
master: o--o--o---------o
development: `o--o--o
你应该怎么做才能显示你的期望,即:
master: o--o--o---------o
development: `o--o--o’
对于最后一个图,您可以使用以下命令:
git merge --no-ff
git branch -d development
master: o--o--o---------o
`o--o--o’
你告诉git创建一个合并提交,即使合并的分支是快进的,即master的最后一次提交是合并分支的直接祖先。
请注意,“垃圾提交”不会被删除,但除非您有充分的理由,否则您应该保持历史记录的原样。 压缩提交会使您难以浏览历史记录。
如果您觉得您的开发分支历史记录中充满了废话,您还可以在合并之前使用交互式rebase重写它。
git checkout developement
git rebase -i master
您将能够选择,编辑,重新排序,压缩或丢弃提交并重写您的分支历史记录。 完成后,使用经典合并(根据需要使用或不使用--no-ff)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.