我们有一个dev分支和一个发布分支。开发分支是所有开发人员签入代码的地方。所有构建都取自发布分支。我们正在使用Stash(Atlassian的Enteprise Git),并希望使用pull请求合并代码审查。
当有人提交拉取请求时,它会自动包含dev分支中尚未合并到发布分支的所有变更集,即使它们不是来自提交请求的用户。开发人员如何仅针对他们的更改而不是其他人提交请求?这是怎么回事?
我看到两个解决方法 -
最佳做法是什么?
答案 0 :(得分:5)
除了Robin的回答之外,推荐的方法是每个开发人员根据开发分支为他们处理的每个功能创建一个分支。然后,创建的pull请求恰好表示代表特定功能或更改的更改。
一旦拉取请求被审核并合并到开发分支中,您用于合并到发布分支的过程就会简化并与审核过程分开。
Stash's documentation on branching和Atlassian's git tutorials更详细地解释了这些概念。
答案 1 :(得分:4)
拉取请求表示“拉取请求”。拉动将拉所有提交,包括它们的依赖 - 它不会挑选单个提交。
因此,如果您想要请求只提取您的提交,并且在同一分支中有其他人的提交,则必须先将提交分成不同的分支。
答案 2 :(得分:0)
跟进:如果您在dev分支的旁边创建一个新分支 ,然后从新分支提交一个拉取请求,它将包括dev分支的提交。解决方案(或至少是我们的解决方案)是让每个开发人员从master分支创建分支。
答案 3 :(得分:0)
我目前使用的是这个:
我们有 3 个分支:
流程如下:
请注意,在此过程中,Develop 分支从不合并到 Release 中。毕竟,它将包含来自其他开发人员的一堆尚未准备好部署的代码。但我的分支将只包含我的代码。
请注意可能会影响您的测试的代码,因为它可能不会同时进入发布分支。实际上,我也希望获得有关此架构的一些反馈。
举个例子,它是这样的: