git删除相关历史提交记录,相关文件保持当前状态

      git删除相关历史提交记录,相关文件保持当前状态


引言

  新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜。这不实战类型的博客记录又开始了!当然实战类型的博客,肯定是有相关的实际需求才会诞生的,这里我们来简单复盘一下实际需求的诞生和由来!

场景一:
原来我们有一个私有的仓库不对外开放,当开发到一定程度的时候,希望对外开放,在准备开发前当然得检查一番不是,但是在检查的时候,我们误提交了某些隐私文件(肯定不是朋友们想的那种隐私了啊,莫多想。这里的隐私可能牵涉到密码啊,核心机密文件啊等鞥),也许朋友们会说可以使用git rm xxx删除啊,虽然删除了但是其实版本库中是有历史记录的,可以进行恢复的。那么就只能删除这些记录了,但是又不想删除仓库,重建来提交。那么就想办法删除历史记录了。我们当然不能直接删除.git文件夹,这将导致git存储库出现不可预知的问题。要删除所有提交历史记录,但将代码保持在当前状态,可以按照以下方式安全地执行此操作:

场景二:
把原有项目提交到git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢?

好了,场景也说清楚了。是时候来直捣黄龙,解决上面相关场景的问题了。




一.具体步骤

前方高能预警,重要的事情说三篇,执行下面的相关操作以后,所有相关的git记录真的会没有了。所以朋友们一定要做好备份,

  好了啥也不多说了,直接上花生米下酒菜,干起来!

1.1 创建并切换到latest_branch分支

这个没有啥好说的,直接操作即可

git checkout --orphan latest_branch

1.2 添加所有文件

切到latest_branch分支后,添加所有的当前状态文件

git add -A

1.3 当前分支提交更改

在当前分支提交更改

git commit -am "delte history git log,first commit"

1.4 git branch -D master删除本地master分支

删除本地分支

git branch -D master

1.4 重命名当前分支

git branch -m master

1.5 强制更新存储库并上传远程仓库

执行完上述的操作之后,我们就可以强制更新存储库并上传到远程仓库了

git push -f origin master

1.6 补充

上述的相关操作,如果我们是托管在gitee或者其它git仓库的时候,可以直接使用上面提供的IDE进行相关的操作,也可以达到同样的目的。




写在最后

  好了今天的博客git删除相关历史提交记录,相关文件保持当前状态e就到这里了。总之,青山不改绿水长流先到这里了。如果本博客对你有所帮助,麻烦关注或者点个赞,如果觉得很烂也可以踩一脚!谢谢各位了!!
最后,也许会有朋友会问,为啥我会有这么个实战的需求呢,肯定不是空穴来风的,一定是有具体的需求要求这么做了。因为我现在公司飞腾,有关于Android的开源项目需要所以就有了这么一篇的博客出来。如果朋友们能读到这里并且对飞腾的Android项目感兴趣的话,欢迎点击飞腾Phytium Android 11 Device,就当借贵宝地宣传宣传了。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值