You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在main分支执行git reset --hard HEAD~1会影响派生分支提交吗?含rebase场景

Git分支操作问题解答

问题1:在main分支执行git reset --hard HEAD~1后,new-branch中的d会被移除吗?

不会。Git里的每个提交都是独立的对象,只要有分支(比如new-branch)还在引用提交d,它就不会被删除。git reset --hard HEAD~1只是将main分支的指针从d回退到c,完全不影响new-branch对d的引用,所以new-branch的提交历史依然是a、b、c、d、e、f。

问题2:若未被移除,执行git rebase main后,new-branch中的d是否仍会保留?

会保留。执行git rebase main时,Git会自动识别new-branch中存在但main中不存在的提交——也就是d、e、f,然后将这些提交依次“搬移”到main分支的当前末尾(即c之后)。完成后new-branch的提交历史依然是a、b、c、d、e、f,符合预期。

未来场景:main新增提交g后,new-branch经rebase后的历史

当main分支新增提交g后,执行git rebase main,Git会把new-branch中不在main(此时main的提交历史为a、b、c、g)里的提交d、e、f,搬移到g的后面。最终new-branch的提交历史会是a、b、c、g、d、e、f。

内容的提问来源于stack exchange,提问作者Frida M. O.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:27:04