如何使用';git流量';?
我通常更喜欢rebase,因为它有一个清晰的历史记录(至少在如何使用';git流量';?,git,git-merge,redmine,rebase,git-flow,Git,Git Merge,Redmine,Rebase,Git Flow,我通常更喜欢rebase,因为它有一个清晰的历史记录(至少在master分支上) 查看一下,似乎需要使用合并提交。这感觉很难看/不整洁,因为所有的合并提交(我通常会重新基址),但也因为与同一代码相关的多个合并提交(ui-feature1合并到ui-development,然后合并到development,然后合并到master;即使没有ui-development分支,也一样) 改为使用Rebase会更干净/美观,但它会创建重放的重复提交,因此: 了解分支机构的来源(分支机构风险的原因)更为复
master
分支上)
查看一下,似乎需要使用合并提交。这感觉很难看/不整洁,因为所有的合并提交(我通常会重新基址),但也因为与同一代码相关的多个合并提交(ui-feature1
合并到ui-development
,然后合并到development
,然后合并到master
;即使没有ui-development
分支,也一样)
改为使用Rebase会更干净/美观,但它会创建重放的重复提交,因此:
- 了解分支机构的来源(分支机构风险的原因)更为复杂
- 需要进行额外维护(某些分支将始终在中重设基础,而其他分支则需要删除并重新创建)
- 当
在第一次源提交中出错时,诸如Redmine(其问题/票据可以列出通过提交消息中的ref
引用它们的所有相应存储库提交)之类的系统将显示源和重定基提交refs#Redmine issue
git-rebase
如何使用git-flow?是否有其他有效的git工作流支持重设基础而不是合并?是否可以在没有合并提交的情况下遵循git流?您可以在将功能分支合并到develope
或master
到相应的分支之前重新设置其基础,如下所示:
git checkout feature/my-super-feature
git rebase develop
git checkout develop
git merge feature/my-super-feature
因此,您的git流中会有更清晰的历史记录,但仍然有成本,因为任何rebase
都是在重写历史记录,在这种情况下,只针对最后一次提交。所以,你们应该在干净的历史和丰富的信息之间找到平衡。我自己只在功能分支上使用rebase
,在一次提交中挤压修复,如下所示:
git rebase -i --autosquash HEAD~2
还有一个选项可以使用merge--squash
合并要素分支。它是最“干净”的,但你失去了你所做的一切。有时它很有用。Rebase是一种非常常见且有效的Git工作流模式。由于我对git-flow一无所知,因此我无法进一步评论。