我通常更喜欢使用rebase,因为它具有清晰的历史记录(至少在master
分支上)。
看看git-flow
,看来需要来处理合并提交。由于所有合并提交(我通常会重新设置基准),而且由于与同一代码相关的多个合并提交(ui-feature1
合并到ui-development
,然后合并到{{1} },然后合并到development
;即使没有master
分支也是如此)。
重新设置基准将更干净/更美观,但是它将创建重复播放的提交,因此:
ui-development
引用它们的相应存储库提交)将显示 source 和在第一次refs #redmine-issue
将问题提交到第一个源提交中时,重新基于提交。有什么中间方法吗? 有什么办法可以很好地集成 git-flow ,但是仍然在提交的消息中引用Redmine问题?
ref
如何与 git-flow 一起玩?是否还有其他有效的git工作流支持 rebase 而不是 merge ?可以在没有合并提交的情况下遵循 git-flow 吗?
答案 0 :(得分:2)
您可以先将rebase
个功能分支合并到develop
或master
到相应分支上,如下所示:
git checkout feature/my-super-feature
git rebase develop
git checkout develop
git merge feature/my-super-feature
因此,您的git-flow
中的历史记录会更整洁,但是仍然有代价,因为任何rebase
都是重写历史记录,在这种情况下,仅适用于最后一次提交。因此,您可以在干净的历史和丰富的信息之间找到平衡。我本人仅在功能分支上使用rebase
,在一次提交中,最后一次提交对壁球修补程序是这样的:
git rebase -i --autosquash HEAD~2
另一个使用merge --squash
合并功能分支的选项。这是最“干净”的方法,但是您会丢失所有提交的内容。有时它很有用。