Git

Git删除提交历史,重新开始

Posted by Alei Blog on September 23, 2017

场景

  • 在项目提交过许多次后,发现之前的提交中走了弯路,或者数据库密码等敏感信息也被提交了,现在想彻底删除提交历史,将现有状态当作起点,重新开始
  • fork了一个项目,不想继承提交历史

操作

  • 基于现有分支,创建孤儿分支temp,也就是没有提交历史的分支
    git checkout --orphan temp
    
  • temp分支中,添加文件
    git add -A
    
  • temp分支提交
    git commit -am "commit message"
    
  • 删除原分支master
    git branch -D master
    
  • 将temp分支重命名为master
    git branch -m master
    
  • 强制更新远程master分支,提交历史也就消失
    git push -f origin master