Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git分支策略:共享分支正在更新,而另一个DEV处于合并的中间?_Git_Merge_Version Control_Atlassian Sourcetree - Fatal编程技术网

Git分支策略:共享分支正在更新,而另一个DEV处于合并的中间?

Git分支策略:共享分支正在更新,而另一个DEV处于合并的中间?,git,merge,version-control,atlassian-sourcetree,Git,Merge,Version Control,Atlassian Sourcetree,我们的.git分支策略如下: 每个开发人员都有一个开发分支(例如john dev) 每个开发人员都有自己的分支,因为“在QA中只隔离John的更改,以便我们可以独立测试它们”是这个团队的一个相当常见的用例,每个开发人员都有自己的开发分支似乎是实现这一点的最简单的方法(他们可以从自己的分支构建一个非prod工件,而无需任何额外的工作) 当您想要将您的功能与其他功能合并时:获取/拉取远程,然后将UAT分支合并到您的_dev分支中(我们鼓励开发人员经常这样做) 解决任何合并冲突(如果需要,与其他

我们的.git分支策略如下:

  • 每个开发人员都有一个开发分支(例如john dev)

    • 每个开发人员都有自己的分支,因为“在QA中只隔离John的更改,以便我们可以独立测试它们”是这个团队的一个相当常见的用例,每个开发人员都有自己的开发分支似乎是实现这一点的最简单的方法(他们可以从自己的分支构建一个非prod工件,而无需任何额外的工作)
  • 当您想要将您的功能与其他功能合并时:获取/拉取远程,然后将UAT分支合并到您的_dev分支中(我们鼓励开发人员经常这样做)

  • 解决任何合并冲突(如果需要,与其他开发人员坐下来)并提交/推送它们

  • 进行快速本地构建以检查是否存在任何问题

  • 签出UAT并将您的开发分支合并到UAT中

  • 推至UAT远程

  • 从UAT分支触发UAT服务器的构建

这个过程似乎过于繁琐的一点是:有合并冲突的合并(自然)要比没有冲突的合并花费更长的时间。有时,当一个开发人员将共享分支(在本例中为“UAT”)与其新代码合并、解决冲突并准备签出/合并到共享分支时,另一个开发人员已经在那里提交了更多代码。因此,他们共享分支的本地副本“落后”,因此他们必须以某种方式进行第二次合并

开发团队通常如何处理这个问题?是否因为上游的标准发生了相当大的变化而再次合并

我们使用的是每开发人员开发分支,这是不是让这个过程感觉很麻烦


更好的策略是根据上游重新确定开发分支的基础(
UAT
git pull——重新设置origin UAT的基础@0andriy——是否有一个干净的上游提交历史?在开发分支中保持干净的历史记录方面,是否仍然有必要重复重新基础/合并并解决两次冲突。您在上面列表的第2项中添加的是所谓的回调合并,它们很难看。我没想到您会看到重复解决冲突两次(或更多次)?如果上游和开发人员对同一个文件进行了修改,则每个重新基址都将是干净的,或者有新的冲突。更好的策略是根据上游重新基址开发分支(
UAT
git pull——重新设置origin UAT的基础@0andriy——是否有一个干净的上游提交历史?在开发分支中保持干净的历史记录方面,是否仍然有必要重复重新基础/合并并解决两次冲突。您在上面列表的第2项中添加的是所谓的回调合并,它们很难看。我没想到您会看到重复解决冲突两次(或更多次)?如果上游和开发人员接触了同一个文件,则每个重基要么干净,要么有新的冲突。