首页 > 解决方案 > 在拉取请求之前强制 rebase/merge master 到 feature 分支

问题描述

我们希望在我们的 git 存储库中强制执行一项策略,以便在创建拉取请求之前master必须将其合并/重新定位(让我们暂时忽略合并与重新定位)到feature分支。

我们想要这个策略的原因是迫使开发人员考虑在其他功能分支中添加的功能,并减少以后的合并冲突。

这通常是在开发团队中完成的吗?您为此使用了哪些工具(git-hook?,特定 CI 工具中的功能?)?

标签: gitbranching-and-merging

解决方案


首先,您不合并/重新设置主控。

您将本地开发/功能分支合并/变基在 master 之上,以便在更新的(git fetch)origin/master 之上重放本地提交,以确保推送的功能仅在最近的顶部引入新提交主人的状态。

您可以通过配置 pull.rebase 和 rebase.autostash 在本地实现这一点(请参阅“ “git pull”可以自动存储和弹出待处理的更改吗? “)

当只有一个开发人员在处理给定功能时,最好这样做(因为push --force如果经常推送,它可能涉及该重新设置的分支)

在服务器端,钩子(像这个)只有在你可以控制所述服务器的情况下才有可能(例如 github.com 等在线服务器不是这种情况)


推荐阅读