我开始在连接到Gerrit的代码库中使用特性分支,但是在更新这些特性分支时遇到了一些问题。
我们所做的是从主分支创建一个特性分支。当我们在特性分支上进行开发时,主分支上也在持续开发。有没有最佳实践来更新特性分支和主分支(如果有)?
- 变基 -> 如果我们从主分支进行变基并推送它,则需要在特性分支中重新审查从主分支中的所有提交。
- 合并 -> 不允许推送合并提交。
首先,我们不应该在主分支上进行开发,如果有紧急情况,我们应该创建一个热修复分支并用于开发。 其次,Rebase始终是保持功能分支更新的首选选项,但整个团队必须执行“rebase”而不是“merge”,以保持提交历史记录清洁。 最后,正如您所说,rebase和merge无法帮助您,因此您可以使用命令“git merge --squash”,此命令将获取所有新提交,组合并创建一个提交更改ID。尽管可能需要手动处理冲突。下面是操作过程:
git merge --squash
命令合并,并将其推送到主分支来移动代码。 - Martin G