繁体   English   中英

如何git merge --squash以便github“网络”图显示合并

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM