我的 git 工作流程包含在经过验证后合并到 master 的功能分支。但是,我不知道这些被压扁的提交被带回它们来自的同一个分支的后果,通过没有压扁到分支的合并主控。
如果没有压缩到 master 的合并,那么将 master 合并回同一个分支将是微不足道的,因为许多提交是相同的。
我的 git 工作流程包含在经过验证后合并到 master 的功能分支。但是,我不知道这些被压扁的提交被带回它们来自的同一个分支的后果,通过没有压扁到分支的合并主控。
如果没有压缩到 master 的合并,那么将 master 合并回同一个分支将是微不足道的,因为许多提交是相同的。
这将在您的功能分支上添加一个新提交,显示为图表:
1.master和feature分支合并前
A---B---C---D master
\
E---F---G feature
2.通过squash将功能分支合并到master(H是master上的squash commit):
A---B---C---D---H master
\
E---F---G feature
3.将master合并回feature分支
A---B---C---D---H master
\ \
E---F---G-----I feature
新的提交 I 添加到功能分支中,并且合并关系也在 master 和 feature 之间创建。
如果您想回到第二张图片所示的历史结构并撤消无意识合并,您可以使用
git checkout feature
git reset --hard HEAD~