我正准备将我的发布分支 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/