【发布时间】:2019-05-13 02:45:55
【问题描述】:
我们希望在我们的 git 存储库中强制执行一项策略,以便在创建拉取请求之前,必须将 master 合并/重新定位(让我们暂时忽略合并与重新定位)到 feature 分支。
我们希望制定此政策的原因是强制开发人员考虑在其他功能分支中添加的功能并减少以后的合并冲突。
这通常是在开发团队中完成的吗?您为此使用了哪些工具(git-hook?、特定 CI 工具中的功能?)?
【问题讨论】:
我们希望在我们的 git 存储库中强制执行一项策略,以便在创建拉取请求之前,必须将 master 合并/重新定位(让我们暂时忽略合并与重新定位)到 feature 分支。
我们希望制定此政策的原因是强制开发人员考虑在其他功能分支中添加的功能并减少以后的合并冲突。
这通常是在开发团队中完成的吗?您为此使用了哪些工具(git-hook?、特定 CI 工具中的功能?)?
【问题讨论】:
首先,您不合并/重新设置 master。
您在 master 之上合并/rebase 本地开发/功能分支,以便在更新的 (git fetch) origin/master 之上重放本地提交,以确保推送的功能仅在master 的最新状态。
您可以在本地使用配置 pull.rebase 和 rebase.autostash 来促进这一点(请参阅“Can “git pull” automatically stash and pop pending changes?”)
最好在只有一名开发人员在处理给定功能时完成(因为如果经常推送,它可能涉及该重新定位分支的 push --force)
在服务器端,钩子(如this one)只有在您可以控制所述服务器时才可能使用(例如,对于 github.com 等在线服务器,情况并非如此)
【讨论】: