我开始使用我们的存储库中与Gerrit连接的功能分支,但在更新这些功能分支时我确实遇到了一些问题。
我们所做的是我们从master创建了一个功能分支。在我们在功能分支中进行开发的同时,主人也在进行开发。使用主分支更新功能分支的最佳实践(如果有)是什么?
答案 0 :(得分:1)
如果我理解正确,你在Gerrit上有一个功能分支,对吗?我的意思是,你不只是在当地的一个功能部门工作,对吧?如果这是正确的,你不能做第一个选项(rebase),你的问题的答案是:2。合并。
您还说不允许将合并提交推送到Gerrit,因此,如果您真的想要与主服务器更新功能分支,则需要请Gerrit管理员授予您(和/或其他的)将合并提交的权限提交到这个特定的功能分支。
答案 1 :(得分:0)
通过将一个功能分支与master合并并将该合并推送到gerrit来提升功能分支非常方便,因此如果可能的话,您应该考虑为主设备和其他分支设置不同的规则。
总的来说,我认为不允许在经常提升的分支上进行合并提交是没有意义的。为什么您不想在提交历史记录中显示功能开发的这一方面?完全同意不允许在master上合并。他们没有添加关于如何在那里发展的宝贵信息。它们只会让人更难看到事物的顺序。
答案 2 :(得分:0)
首先,如果事情非常紧急,我们不应该在master分支上进行开发;我们将制作一个修补程序分支并用于开发。 其次,Rebase 始终是保持更新功能分支的首选选项,但整个团队必须仅执行“rebase”而不是“merge”以保持提交历史记录干净。 最后,正如您所说的 rebase 和 merge 不会帮助您,因此您可以使用命令“git merge --squash”,此命令将获取所有新提交,合并并创建一个提交更改 ID。不过,您可能需要手动处理冲突。做的过程如下: