在我的公司,我们正在使用git-flow,并且拥有许多分支机构和PR通常会令人困惑,并且会降低开发速度。在项目的启动阶段尤其没必要。
一个问题是大多数功能需要超过1或2天才能完成。如果存在代码审核流程,则可能需要一两天的时间。如果在不成熟(快速变化的)代码库中有多个开发人员在不同的分支上工作了好几天,那么分支机构就有很多分歧的机会,导致合并冲突,重复工作等。有时会创建分支机构由于某种原因尚未合并的另一个功能分支。这也容易出错,例如PR可能有错误的"基础分支"。有时在合并PR之后,我尝试将trunk / master合并到我的功能分支中,这导致了痛苦的合并,其中每个修改的文件都显示为冲突。
但是,某种代码审查实践是必要的,所以我想知道其他团队和公司使用了什么。
我可以想象一个系统,其中功能由提交消息中的标记标识。例如" [XYZ-1234]添加了新组件"。标签标识票证,消息提供更多详细信息。所以每个人都可以致力于开发一个开发人员。分支,并经常同步,当确定一个功能完成时,与该功能相关的所有提交都可以进行代码审查,然后合并到" master" (通过搜索提交消息)。这对我来说似乎更简单,更好,所以我不确定为什么不创建和使用这样的系统。
答案 0 :(得分:0)
根据您的描述,似乎所有开发人员都拥有自己的功能分支,然后创建PR以将功能分支合并到主分支。
对于这些建议,您应该为所有开发人员创建一个分支,例如dev
,以便在分支机构上共同工作。工作流程如下:
feature
分支机构工作。feature
分支合并到dev
分支。dev
合并到master
分支。feature
分支创建新的dev
分支。由于某些feature
分支可能会存在几周,并且在这几周内dev
分支上可能会有新的更改,因此开发人员可以在最新{{1}之上重新定位这些feature
分支通过在dev
分支上执行git pull origin dev --rebase
命令进行分支。答案 1 :(得分:0)
正常的干线流量应该适用于您的情况。
您面临的问题可能会被一些额外的做法所缓解。
合并冲突中的痛苦
基于另一个功能分支的功能分支
功能分支命名
不确定是否有帮助