Git 带壁球的工作流短期特性分支

Git Workflow short-lived feature branch with squash

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

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

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

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

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

现在我想删除 new_feature 分支 运行ning:

branch -d new_feature

错误:分支'new_feature'没有完全合并。 如果确定要删除,运行 'git branch -D new_feature'.

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

(即使 git diff 也没有显示出任何差异)

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

我试过你的工作流程,然后我又重新合并了压缩合并的分支,然后就可以删除了。

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