【发布时间】:2011-11-20 08:49:27
【问题描述】:
使用 Gerrit 很容易意外地将开发分支中的不稳定代码合并到稳定分支中:
$ git checkout develop
$ commit
$ git push origin HEAD:refs/for/stable
在 Gerrit 中,提议的更改是否来自开发分支并被合并到稳定分支中并不是很清楚。有没有办法在 git 或 Gerrit 中防止这种合并发生?
更新: 现在我们使用自定义命令推送到 gerrit,它会找到它所基于的 origin 中的最后一个分支,并且只允许推送到该分支。
【问题讨论】:
-
该问题的解决方案完全阻止了推送。我想推送,但想防止将开发(或从开发创建的任何分支)推送到 refs/for/testing 或 refs/for/stable
-
所以你必须为你的远程仓库制作自定义的预接收钩子
-
...gerrit 不可能:'(
-
您的主题摘要说“已合并”,但您的示例仅显示了对 gerrit 的推送,在获得批准之前不会合并。如果您想阻止推送,那么您的脚本似乎是正确的。如果您想阻止合并(在 gerrit 中),那么您可以转到 Project / Access 选项并确保分支不允许提交者。