我对以下方案的最佳工作流程有疑问。
目前有2个分支机构:
master仅通过批准的合并请求接受代码。
鉴于2位开发人员正在使用相同的功能,不同的部分,这是为此功能创建合并请求的最佳方式:
答案 0 :(得分:2)
如果两个开发人员不是独立的,我建议你选择方法2,一个开发人员创建一个包含两个工作的合并请求。但是,你可以通过以下方式减少这一点:
- 让每个开发人员以较小的部分对他们的工作进行代码审查。虽然这不会避免对进入主分支的整个工作进行代码审查,但肯定会使拒绝不那么像。
- 对于大型功能,只要有可能,每个开发人员都应该生成不依赖于其他工作的较小的作业部分(“原子提交”),然后可以将此部分合并到开发分支中并从其他开发人员处获取继续他的工作。这样,当功能完成时,它已经存在于开发分支中,而不是开发人员的主题分支。
根据您的描述,我相信您的开发人员将拥有包含所有工作的主题分支。你不能轻易地从主题分支的角度分开。因此,请选择2号方法并由两位开发人员签名。
答案 1 :(得分:1)
创建一个程序员可以使用的单个功能分支(来自master)。两位工程师都应该使用"atomic commits",以便审阅者的工作很简单。如果在此功能开发期间有许多其他工程师合并掌握,请从master执行定期rebasing以确保构建完整性。
答案 2 :(得分:0)
Forked workflow在这种情况下变得非常有吸引力(并且适用于Github),它使用pull请求将开发人员的个人分支发送回主存储库的存储库。
git push
分支机构更改为其私有fork存储库并从其私有fork创建pull请求/分支到主存储库/开发分支。假设开发人员有一个名为' i903-issue-of-issue' (903是我们的github问题编号),他们需要反对开发:
git fetch upstream
git checkout development
git merge --ff-only upstream/development
git checkout i903-description-of-issue
git rebase development
git push origin i903-description-of-issue
因此,开发人员有责任确保他们的个人分支始终与官方的“开发”保持一致。主存储库上的分支(通过变基)。它使用pull请求将多个提交合并到主要的“开发”中。科。 Github(和其他工具)中的这种拉取请求模型允许在接受PR之前进行代码审查。
如果它将成为破坏性功能分支,将破坏持续部署“开发”的能力。分支到QA服务器,然后您可能需要将新功能分解为较小的位,以减少破坏性。