分支 squash-merged 到 master,并合并回 branch

Branch squash-merged to master, and merged back to branch

我的 git 工作流包含功能分支,这些分支在经过验证后被压缩合并到主分支中。但是,我不知道这些被压缩的提交被带回它们来自的同一个分支的后果,通过合并主而不压缩到分支。

如果合并到 master 没有被压缩,那么将 master 合并回同一个分支将是微不足道的,因为许多提交都是相同的。

这将在您的功能分支上添加一个新的提交,如图所示:

1.master 和合并前的特征分支

A---B---C---D    master
     \
      E---F---G  feature

2.merge 通过 squash 将特性分支到 master(H 是 master 上的 squash 提交):

A---B---C---D---H   master
     \
      E---F---G     feature

3.Merge master 回到特性分支

 A---B---C---D---H      master
     \             \
      E---F---G-----I   feature

在feature分支中添加了新的提交I,master和feature之间也建立了合并关系。

如果你想回到第二张图所示的历史结构并撤销无意识合并,你可以使用

git checkout feature 
git reset --hard HEAD~