今天我就做了这个傻事。
不过还好是私有仓库,没有酿成泄密事件。
那么这种情况该怎么处理呢?
首先,把账户密码改掉,再Commit一次是肯定不行的。
看worktree,账户密码确实是没了,但是在Commit记录里仍然能看到的。
别急,Stackoverflow上我找到了一个简单粗暴的做法,直接抹掉全部历史!
https://stackoverflow.com/questions/13716658/how-to-delete-all-commit-history-in-github
首先你需要一个git命令行工具,Eclipse自带的git插件是玩具。
1.创建一个独立(孤儿)的分支,并Checkout
git checkout –orphan latest_branch
2.将目前的文件全部add到此分支
git add -A
3.全部Commit到孤儿分支
git commit -am “commit message”
4.删除带有历史信息的Master分支
git branch -D master
5.将没有任何历史的孤儿分支重命名为Master
git branch -m master
6.强制推送到Remote仓库
git push -f origin master
代价就是所有历史都没有了。
当然,我们有更精细的方式,可以剔除包含敏感信息的commit