拉请求中的多个提交

时间:2013-11-20 06:06:24

标签: git pull-request bitbucket-server

我们有一个dev分支和一个发布分支。开发分支是所有开发人员签入代码的地方。所有构建都取自发布分支。我们正在使用Stash(Atlassian的Enteprise Git),并希望使用pull请求合并代码审查。

当有人提交拉取请求时,它会自动包含dev分支中尚未合并到发布分支的所有变更集,即使它们不是来自提交请求的用户。开发人员如何仅针对他们的更改而不是其他人提交请求?这是怎么回事?

我看到两个解决方法 -

  1. 为每个开发人员添加单独的分支,以便仅获取他们的更改。
  2. 如果请求来自多个开发人员,则添加多个批准者。
  3. 最佳做法是什么?

4 个答案:

答案 0 :(得分:5)

除了Robin的回答之外,推荐的方法是每个开发人员根据开发分支为他们处理的每个功能创建一个分支。然后,创建的pull请求恰好表示代表特定功能或更改的更改。

一旦拉取请求被审核并合并到开发分支中,您用于合并到发布分支的过程就会简化并与审核过程分开。

Stash's documentation on branchingAtlassian's git tutorials更详细地解释了这些概念。

答案 1 :(得分:4)

拉取请求表示“拉取请求”。拉动将拉所有提交,包括它们的依赖 - 它不会挑选单个提交。

因此,如果您想要请求只提取您的提交,并且在同一分支中有其他人的提交,则必须先将提交分成不同的分支。

答案 2 :(得分:0)

跟进:如果您在dev分支的旁边创建一个新分支 ,然后从新分支提交一个拉取请求,它将包括dev分支的提交。解决方案(或至少是我们的解决方案)是让每个开发人员从master分支创建分支。

答案 3 :(得分:0)

我目前使用的是这个:

我们有 3 个分支:

  • 开发
  • 发布
  • 大师

流程如下:

  1. 对于每个功能,我们从 Master 创建一个分支。
  2. 为了测试,我们从我们的分支向 Develop 分支发出拉取请求。
  3. 完成测试后,我们再次从我们的分支发出拉取请求,但会发送到发布分支
  4. 每次发布​​后,我们都会从发布到 Master 发出一个 Pull Request。请注意,这会创建额外的重复提交,这些提交最终会流回到 Develop,但通常不会发生实际的文件更改,只会进行提交。

请注意,在此过程中,Develop 分支从不合并到 Release 中。毕竟,它将包含来自其他开发人员的一堆尚未准备好部署的代码。但我的分支将只包含我的代码。

请注意可能会影响您的测试的代码,因为它可能不会同时进入发布分支。实际上,我也希望获得有关此架构的一些反馈。

举个例子,它是这样的:

  • Master -> 我的分支
  • 我的分支 -> 开发
  • 我的分支 -> 发布
  • 发布 -> 大师