我有点困惑git rebase
。
我有一个develop
分支和一个staging
分支。我已经develop
融入staging
git checkout staging
git merge develop
但是由于樱桃挑选,有一堆重复的提交;我想删除重复项。我应该执行以下操作吗?
git checkout staging
git rebase develop
更新:这git merge develop
是本地的,所以我还没有推送它
我有点困惑git rebase
。
我有一个develop
分支和一个staging
分支。我已经develop
融入staging
git checkout staging
git merge develop
但是由于樱桃挑选,有一堆重复的提交;我想删除重复项。我应该执行以下操作吗?
git checkout staging
git rebase develop
更新:这git merge develop
是本地的,所以我还没有推送它
一般的答案是:是的,rebase 会压缩你的重复提交。具体来说,如果在暂存分支中存在相同的提交,它将丢弃樱桃挑选的提交。
但是,我建议重新设置您的开发分支,然后将其合并到staging,即
git checkout develop
git rebase staging
git checkout staging
git merge develop
更好的做法是重新设置分支分支而不是主分支。
我部分同意@MicroVirus 上面的评论,但我认为这仅对主要分支很重要(主要是master,在你的情况下staging,...),它应该是稳定的,而不是改变它的历史,因为其他人可能已经已经克隆并检查了它们,最重要的是,以它们为基础。对于无论如何都在进行中的功能或开发分支,可以更改历史记录。
编辑
旁注:一般来说,如果您需要从暂存分支进行更新的提交而不是挑选樱桃,那么定期将您的开发分支重新设置为暂存是一个更好的工作流程。