Git 强制Azure DevOps仅允许快进合并

Git 强制Azure DevOps仅允许快进合并,git,merge,azure-devops,pull-request,Git,Merge,Azure Devops,Pull Request,我希望以严格的行为使用Azure DevOps Pull请求 合并只在开发分支上进行,服务器只强制对master进行快进合并 我没有找到在Azure DevOps上强制执行此行为的方法。 有没有办法设置此选项?摘自文档:看起来您可以用一种简单的方法来设置,因为FF不支持作为选定的合并策略 实施合并策略 通过在拉请求完成时强制执行合并策略来维护一致的分支历史记录。 选择EnforceanMergeStrategy并选择一个选项以要求pull请求使用该策略进行合并 设置合并要求 无快进合并-当拉请

我希望以严格的行为使用Azure DevOps Pull请求

合并只在开发分支上进行,服务器只强制对master进行快进合并

我没有找到在Azure DevOps上强制执行此行为的方法。
有没有办法设置此选项?

摘自文档:看起来您可以用一种简单的方法来设置,因为FF不支持作为选定的合并策略

实施合并策略 通过在拉请求完成时强制执行合并策略来维护一致的分支历史记录。 选择EnforceanMergeStrategy并选择一个选项以要求pull请求使用该策略进行合并

设置合并要求

无快进合并-当拉请求关闭并在目标分支中创建合并提交时,此选项合并源分支的提交历史记录。 挤压合并-通过挤压合并完成所有拉取请求,在目标分支中使用源分支的更改创建单个提交。了解有关挤压合并及其如何影响分支历史的详细信息。 使用git钩子强制执行此选项 您可以通过设置git钩子来实现这一点,它将验证您正在推送的提交是否在所需提交之上

!/垃圾箱/垃圾箱 有关详细信息,请参见此处, http://git-scm.com/book/en/Customizing-Git-An-Example-Git-Enforced-Policy refname=$1 奥尔德雷夫=2美元 新修订=$3 强制快进只执行推送 检查\u快进\u { all_refs=`git rev list${oldrev}..${newrev}wc-l` single_parent_refs=`git rev list${oldrev}..${newrev}-max parents=1 | wc-l` 如果[$all_refs-eq$single_parent_refs];则 echo这是快进提交的部分。。。 出口0 fi } 检查\u快进\u 强制Azure DevOps仅允许快进合并

与Erik p comment一样,Sprint 150也发布了此功能:

:

现在,在合并拉取请求中的更改时,您有了更多选项 到目标分支。我们已经增加了对我们最重要的两个项目的支持 开发人员社区上请求的功能: 也被称为“重设基础和合并”

但是有些人说这个功能不完整,如果你有同样的问题,你可以投票并添加你的评论。当有足够多的社区对此反馈进行投票并添加评论时,产品团队成员将认真对待此反馈


希望这能有所帮助。

感谢您详细而精彩的介绍。据我所知,Azure DevOps不支持git挂钩。我错过什么了吗?有没有办法在Azure DevOps上使用您的方法?谢谢这些文件实际上不是最新的。自sprint 150更新以来,rebase或fast forward已作为可强制执行的合并策略提供。这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以接受它作为一个答案,这样它可以帮助其他社区成员谁得到相同的问题,我们可以存档此线程,谢谢。如果没有,请告诉我们您是否需要进一步的帮助。