Git歪果仁

一、目标

本博文中介绍的git操作要达到的目标为:使用同一分支,回滚到之前的某一历史版本A,但是在该分支上再次提交时,还保留从该历史版本A到当前版本的所有提交历史。

例如分支master有如下提交历史commit 1—> commit 2—>commit 3:
这里写图片描述
要达到的目标为:回滚到commit 1,在该分支上继续提交时,还要保存commit 2和commit 3的提交历史,也即再次提交时,提交历史为:
commit 1—> commit 2—>commit 3—>commit 4

二、具体操作

1、在commit 3时切出新分支b2,使用git log查看分支b2的提交历史和master的提交历史一致:
这里写图片描述
2、此时,在b2分支中回滚到commit 1,在文件管理器中进入到工程的根目录中,拷贝出除.git目录外的所有文件,放到桌面上。
3、切回到master分支,删除除.git外的所有文件,并把上一步中拷贝出的所有文件拷贝回工程的根目录中,此时正常提交即可。
4、使用git log查看master的提交历史如下:
这里写图片描述
但是此时,commit 4下所有的文件内容均和commit 1下所有的文件内容一致,也即达到了本文开头处的目标。
达到目标后,删除分支b2即可。

注意
  1. 第2步和第3步是整个操作的关键。
  2. 在master分支上并没有真正的执行回滚,只是达到了类似回滚的效果,但是在分支b2上执行了真正的回滚。
  3. 本文中介绍的方法为git的非正常使用方法,请谨慎使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值