前言

为什么要清空提交的历史记录呢 ?

在使用 Git 进行仓库代码管理的时候,难免不注意会提交一些隐私的信息,即使是后面删除了,但还是能够从 Git 的历史记录可以找的到以往提交的信息。而且大部分开发者都是使用 Public Repository 公开的仓库,别人 clone 下来的话,那么就会造成隐式信息的直接暴露。

解决方案

思路: 大致就是创建一个新的节点备份一下,然后删除原来的节点,再将新的节点完全覆盖推送到远端

需要使用到 orphan 命令

1
orphan 创建的节点,只有当前节点被添加的记录,不会有其他节点的历史提交信息
  • 使用 git checkout –orphan new_branch ,基于当前分支创建一个独立的分支new_branch

    1
    
    git checkout --orphan  new_branch
  • 添加所有文件变化至暂存空间

    1
    
    git add -A
  • 提交并添加提交记录

    1
    
    git commit -am "commit message"
  • 删除当前分支

    1
    
    git branch -D master
  • 重新命名当前独立分支为 master

    1
    
    git branch -m master
  • 强制推送到远端分支 (会覆盖掉远端代码,小心使用)

    1
    
    git push -f origin master