分支/合并结构
结构的一个合乎逻辑的解释基本上是按照你说的话:一个集成分支,并设有分支机构。
在这种类型的工作流中,正如你所做的那样,了解所有开发工作不会影响到下一个版本是至关重要的。
但是对于DVCS,理解分支可以发布和克隆也是关键。
最后一点(刊物)将会对合并的影响很大命令 ,即:
每当一个开发人员必须合并他的任何集成分支工作(他从“中央”资料库拉),我会建议:
# switch back to previous release tag (from where feature branches for next release where done)
$ git checkout previousReleaseTag
# create one's own private
$ git checkout -b myIntegrationBranch
# merge or cherry-pick what we want to actually put in the next release
$ git merge... from our feature branch
# rebase that private integration branch on top of actual integration branch
$ git rebase integrationBranch
上次rebase将改写本地的历史合并,但在分支中,您不会发布(因此不会造成任何损害)。
一旦所有新功能都能正常工作,您可以将该专用分支合并回相关集成分支的当前HEAD。
“私人分支 - 合并或樱桃挑选 - 重新分配 - 本地分辨率 - 合并回来”是一个必要的工作流程,因为几个团队将不得不将他们的工作合并到一个公共分支。他们需要在合并到公共分支之前重播他们想要在私人分支中发布的内容,否则每个团队可能会破坏公共分支的HEAD所代表的内容。
的问题,其他细节:
嗯。如果开发人员想要包含自己机器外部发布的功能,最后的“git rebase”将会重写这些提交的历史记录。将所有功能合并到公共集成分支(主?)会更清洁。 – 2011-07-21 12:24:55