删除 git 中所有历史提交

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

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