git版本另类回退

本文介绍如何使用Git命令正确地从master分支回退到某个特定状态,避免包含不需要的分支提交。通过实例演示如何找到并回退到指定提交点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$ git reset --hard commit_id

注意:
如果该 commit_id 位于某个非 master 分支上的提交。

        master  ----o[m1]--o[m2]--o[m3]
                    |               |
        branch/b1   o[b1]--o[b2]--o[b3]

如图,master 分支在 m1 提交时候,引入新分支b1,然后 b1 分支中做了b1,b2,b3修改,最后将该b1分支通过m3合并入master.在提交过程中,master 分支又合并了新的分支m2.

当前位于 m3 版本。如果想要master回退到未被b分支提交修改的版本,那么你必须回退到 m1 版本。
如果你仅仅使用 git reset –hard b3 // 那么你会发现 b1,b2 这些提交,在master分支上仍然有记录。不要以为没有 m3 这个合并的操作,master 就真的没有b1,b2,b3,这些记录!
这时候,你需要通过查看b3的parents. 通常有两个parents: m1,b2// 在网页上查看这个 parents.

使用下面方法回退:

$ git reset --hard m1 
$ git checkout master  // master 即可位于没有被 b 分支修改的版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值