带有壁球的 Git Workflow 短期功能分支

问题描述

我对以下 git 工作流程有疑问:

 - checkout master
 - pull -r origin master
 - checkout new_feature
 - rebase master
 - checkout master
 - merge --squash new_feature
 - commit -m "F"
 - push origin master

现在您将得到以下设置,假设在 new_feature 分支上发生了一些提交 C、D、E

Master             A --B --------------- F
                    \ 
new_feature          \ -- C -- D -- E

Local Master 和 Origin Master 指向 F。 F 提交涉及C、D、E

现在我想通过运行以下命令删除 new_feature 分支:

branch -d new_feature

错误:分支“new_feature”未完全合并。 如果您确定要删除它,请运行“git branch -D new_feature”。

为什么我在这里得到错误,为什么 git 不知道,分支已经完全合并,只是用 squash 命令?

(即使是 git diff 也不显示任何差异)

解决方法

好吧,使用这些命令,new_feature 分支不会正式合并,因为它不是合并提交的父节点。 git 不会检查您的更改实际上是否已合并。你知道,但对于 git 来说,了解它并非易事。

我已经尝试了你的工作流程,然后我再次重新合并了被压扁合并的分支,然后它可以被删除。

这实际上不是错误,而是防止您丢失工作的检查。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...