基于master分支变基时,分支存在master历史中的相同提交如何处理?
问题解答
变基时的行为
当你执行git rebase master将特性分支变基到当前master时:
- Git会自动跳过那个重复的
fix提交。Git通过patch-id(提交内容的哈希值)识别重复修改,由于你之前已通过cherry-pick把该提交的内容合并到master,两者的patch-id完全一致,Git会判定这个提交的修改已存在于目标分支中,因此不会将其重新应用到特性分支的历史里。 - 通常不会出现冲突,除非master在合并热修复后,又有其他提交修改了与该
fix提交相同的代码区域。但单纯的重复提交内容不会引发冲突。
建议操作
直接执行变基:
切换到特性分支后执行:git checkout feat/my-feature git rebase master变基完成后,特性分支的历史会自动剔除重复的
fix提交,最终结构如下:*---*---*---*---*---* (master) \ *---* feat/my-feature先备份分支(可选):
如果你担心变基过程中出现意外,可以先创建特性分支的备份:git checkout feat/my-feature git branch feat/my-feature-backup变基完成并确认无误后,可删除备份分支:
git branch -D feat/my-feature-backup
内容的提问来源于stack exchange,提问作者glades
相关产品推荐
相关产品推荐

