git - 发布分支的 Azure devops merge 类型

标签 git azure-devops git-flow

我正准备将我的发布分支 merge 到具有本地 Azure DevOps 环境的主分支中。 当我去完成 Pull Request 时,我得到了四种 merge 类型选项:

  • merge (无快进)
  • 压缩提交
  • rebase 和快进
  • 半线性 merge

我宁愿保持我所有的历史完好无损,确保最大限度地减少修补程序或 future 版本分支上的问题。我正在尝试遵循 git-flow 流程。

通常我会使用快进的 Rebase,但是(当我选择“Squash”时)屏幕上的一条消息说:

“如果您计划在未来的工作中使用 source 分支,请考虑使用非快进 merge ”。

这是什么意思?带快进的 Rebase 不安全吗?

感谢您的建议。

最佳答案

根据经验,如果您的 source 分支有您希望保留的 merge 提交,那么您应该在这 4 种中选择的唯一 merge 类型是第一个,“merge ”。在 Git-Flow 中,将任何 protected 分支 merge 到另一个分支中总是需要定期 merge 。 (release or hotfix into master or develop 等)原因是其他3种 merge 类型中的任何一种将“pop ” merge 气泡,您将丢失 merge 提交提供的信息。

请注意,您仍然可以使用半线性 merge 将功能分支 merge 到 protected 分支中,事实上我个人更喜欢在使用 Git-Flow 时这样做。以下是关于 when you can and can't use semi-linear merge 的更多详细信息.

关于git - 发布分支的 Azure devops merge 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68999790/

相关文章:

django - 无法忽略 Django 项目中推送到 git 的静态文件

git - 默认情况下推送 --force-with-lease

azure - 关于 Azure AD Connect 目录配置

tfs - VS2013 生成定义 'Microsoft.TeamFoundation.Client.BasicAuthCredential' 未标记为可序列化

git - 如何重置 SourceTree 中的 git-flow 配置?

git - 如何更有效地使用 Magit?

azure - 无法通过管道从 azure 存储库触发 shell 脚本

github - 使用 GitHub 流程的开发和生产环境

git checkout 。添加稀疏 checkout 排除的目录