Gerrit和功能分支

时间:2018-01-24 13:43:51

标签: git gerrit

我开始使用我们的存储库中与Gerrit连接的功能分支,但在更新这些功能分支时我确实遇到了一些问题。

我们所做的是我们从master创建了一个功能分支。在我们在功能分支中进行开发的同时,主人也在进行开发。使用主分支更新功能分支的最佳实践(如果有)是什么?

  1. Rebase - >如果我们从master重新推出并推送它,那么master的所有提交都需要在功能分支中再次进行审核。
  2. 合并 - >它不允许推送合并提交。

3 个答案:

答案 0 :(得分:1)

如果我理解正确,你在Gerrit上有一个功能分支,对吗?我的意思是,你不只是在当地的一个功能部门工作,对吧?如果这是正确的,你不能做第一个选项(rebase),你的问题的答案是:2。合并。

您还说不允许将合并提交推送到Gerrit,因此,如果您真的想要与主服务器更新功能分支,则需要请Gerrit管理员授予您(和/或其他的)将合并提交的权限提交到这个特定的功能分支。

答案 1 :(得分:0)

通过将一个功能分支与master合并并将该合并推送到gerrit来提升功能分支非常方便,因此如果可能的话,您应该考虑为主设备和其他分支设置不同的规则。

总的来说,我认为不允许在经常提升的分支上进行合并提交是没有意义的。为什么您不想在提交历史记录中显示功能开发的这一方面?完全同意不允许在master上合并。他们没有添加关于如何在那里发展的宝贵信息。它们只会让人更难看到事物的顺序。

答案 2 :(得分:0)

首先,如果事情非常紧急,我们不应该在master分支上进行开发;我们将制作一个修补程序分支并用于开发。 其次,Rebase 始终是保持更新功能分支的首选选项,但整个团队必须仅执行“rebase”而不是“merge”以保持提交历史记录干净。 最后,正如您所说的 rebase 和 merge 不会帮助您,因此您可以使用命令“git merge --squash”,此命令将获取所有新提交,合并并创建一个提交更改 ID。不过,您可能需要手动处理冲突。做的过程如下:

  1. git 结帐大师
  2. git pull
  3. git checkout feature_branch
  4. git pull
  5. git merge --squash master
  6. git 添加。
  7. git commit -m"commit_message" // 解决 IDE 中的所有冲突。
  8. git push