Wait the light to fall

删除 git 中所有历史提交

焉知非鱼

把旧项目改一改, 提交到 git 仓库中, 这是很多程序员的学习手段。但是, 旧项目的 history commit 中往往有很多敏感信息, 例如数据库登录信息。我就比较奇特了, 我误 commit 了一个大文件(jar 包, 囧)。 历史提交信息正好我也不想保留了, 我想把改好的这个版本当作一次完整的原子提交。即当作一个新仓库了。做法如下:

  • 1)切换到一个新分支
git checkout --orphan latest_branch
    1. 缓存所有文件(.gitignore中的除外)
git add -A
    1. 提交跟踪后的文件
git commit -am "init commit"
    1. 删除 master 分支
git branch -D master
    1. 重命名当前分支为 master
git branch -m master
    1. 提交到远程 master 分支
git push -f origin master