如果您已将 and 与git merge( --no-ff)合并并希望将其转换为 a 的等效项git merge --squash,则可以使用以下过程(假设合并提交是分支上的最新提交):
git reset --hard HEAD~1 (在合并之前将分支重置为提交。别担心,它没有丢失!)git cherry-pick -m 1 HEAD@{1} (樱桃挑选你刚刚删除的合并提交作为正常提交,基于它和这个分支之间的差异)除了保留在合并期间完成的任何冲突解决之外,它还将保留原始合并提交信息(消息、作者、日期等),这对于修复来自 BitBucket 等生成一致提交消息的工具的错误合并非常有用。
我们有一个仅限壁球提交的策略,所以当有人不小心从 BitBucket PR 中选择了正常的合并选项时,我最终会偶尔使用它。或者单击 Slack BitBucket 机器人上令人沮丧的“合并”按钮,该按钮不会为您提供合并策略的选择...
也许git rebase --preserve-merges对你有用.
这里详细解答了这样做时发生的事情:
请道歉,我不喜欢从那里复制和粘贴.
| 归档时间: |
|
| 查看次数: |
6612 次 |
| 最近记录: |