Git 删除所有提交历史

2018/09/03

Tags: git github

有些git项目出于一些原因我们需要删除提交历史。

有如下场景:
不小心把配置文件的密钥等信息上传出去了又想撤回。
项目commit次数太多了,删除commit可以相当于清理一下repo,可以缩小体积

如果是单人的项目,这时候可以用命令:git push --force来完成。这样会覆盖上一次commit。

如果是想删除所有的提交历史,我们可以用以下的命令:

# 1. 创建全新的孤立分支 latest_branch
git checkout --orphan latest_branch

# 2. 暂存所有文件
git add -A

# 3. 提交所有文件的修改到latest_branch
git commit -am "del all history"

# 4. 删除原来的master分支
git branch -D master

# 5. 修改latest_branch分支名为master
git branch -m master

# 6. 强制更新远程服务器的master分支, 至此清空git所有历史
git push -f origin master