【发布时间】:2023-03-20 01:13:01
【问题描述】:
我正在将一个 2000 行的方法从 A 类重构为 B 类中的几个较小的方法。因此,A 类将大块代码替换为对 B 类中定义的方法的单行调用。B 类不断被附加到,因为我一直在为它编写新方法。到目前为止,我的方法是为我在 B 类中编写并在 A 类中实现的每 3 个新方法创建一个新功能分支。我知道有两个工作流程:
工作流程 1:
-
i) 从 dev 创建一个 ft1 分支:stage -> commit -> push -> submit pull request -> 合并到开发中。
ii) 从 dev 创建一个 ft2 分支:stage -> commit -> push -> submit pull request -> 合并到开发中。
.
.
.
n) 从 dev 中创建一个 ft(n) 分支。 . .合并到开发中
工作流程 2:
-
i) 从 dev 创建一个 ft1 分支:stage -> commit -> push -> submit pull request -> 合并到开发中。
ii) 从 ft1 创建一个 ft2 分支:stage -> commit -> push -> submit pull request -> 合并到开发中。
.
.
.
n) 从 ft(n - 1) 创建一个 ft(n) 分支。 . .合并到开发中
请记住,从提交 PR 到合并到 dev 之间的时间是可变的,有时很长。我在工作流 1 中看到的问题是我不断覆盖 B 类文件末尾的同一区域。这将导致需要手动解决的合并冲突。工作流 2 的问题在于,从不相关的特征中分支特征没有逻辑意义。当然,所有功能都会影响相同的 2 个文件,但除此之外它们是独立的。现在,如果我在这里错了,请纠正我,但工作流 2 的好处似乎是,如果我总是拒绝为特定功能提交 PR,直到直接在它合并到开发之前出现的功能,那么就不会有用这种方法合并冲突。我在这个评估中是否正确?
哪种工作流程更高效?
【问题讨论】:
标签: java git version-control jira