~~~ rm -rf .git git init git add -A git commit git push -f ~~~ ## git仓库删除所有提交历史记录,成为一个干净的新仓库 1. Checkout `git checkout --orphan latest_branch` 2. Add all the files `git add -A` 3. Commit the changes `git commit -am "commit message"` 4. Delete the branch `git branch -D master` 5. Rename the current branch to master `git branch -m master` 6. Finally, force update your repository `git push -f origin master` # 改写历史,永久删除git库的物理文件 发布在 github 上的项目 jfinal 最初没有使用maven进行管理,所以 WEB-INF/lib 留存有 jar 文件,使用 maven进行库文件管理以后这些 jar 不再有用,故删之。 但即便是删掉,库中还是会存有这些文件的物理文件,占有一定的存储空间,从而 git clone 下来时的总文件大小达到 29M之多,git osc 速度算快的,但 github.com简直就无法忍受了,所以通过 git help filter-branch 找到改变历史的办法,具体操作如下: ~~~ git clone git@github.com:jfinal/jfinal.git git filter-branch --tree-filter 'rm -f WebRoot/WEB-INF/lib/*.jar' --tag-name-filter cat -- --all git push origin --tags --force git push origin --all --force ~~~ 删完后再 git clone 整个文件大小缩减到 940K,git clone 秒秒钟搞定,即便是 github 也是极速,打完收工