Git分支顶端调整:将另一分支提交纳入目标分支(非合并方式)
Git分支历史调整解决方案
你的命令是否有效?
完全有效。执行以下命令后:
git checkout Branch1 git reset Branch2
Branch1的历史会完整呈现为 a -- b -- c -- d -- e,不会出现仅保留提交e的情况。因为Branch2指向的提交e本身就包含c、d的历史关联,reset操作只是将Branch1的指针直接移动到e的位置,整个提交链会被完整继承。
备选方案:使用变基(Rebase)
如果你更倾向于用rebase来实现线性历史,可按以下步骤操作:
- 切换到
Branch2:git checkout Branch2 - 将
Branch2变基到Branch1上(当前场景下无冲突,因为Branch2的提交均基于Branch1的b提交分叉):git rebase Branch1 - 切换回
Branch1并同步到Branch2的状态:git checkout Branch1 git reset --hard Branch2提示:
--hard参数会重置工作区和暂存区至Branch2的状态,确保工作区无未提交修改时再使用。
清理冗余分支
完成历史调整后,若无需保留Branch2,可执行删除命令:
git branch -d Branch2
若
Branch2未被合并到远程分支,需改用-D参数强制删除:git branch -D Branch2
内容的提问来源于stack exchange,提问作者Vada Poche
相关产品推荐
相关产品推荐

