git add 的时候,不小心把自己的测试信息也添加进去了,包含一部分帐号信息,然后 commit 了!后来去确认代码,才发现出了事。很奇怪为什么会这样,明明是一个文件一个文件 add 的……怎么会犯这种低级又愚蠢的错误。
这种情况要即时处理:删除错误的提交记录。否则即使再次提交,依旧可以从以前的提交记录中查到信息。
网上查了一圈,发现犯过类似错误的人还有不少,有很多解决方法,最简单粗暴的方法是:删库,再重新建一个同名仓库,然后就没有提交历史了,但是很多情况下不能采用这种方法。
其他方法,也都要确保从错误提交,到修改提交这段时间,没有人从服务拉取器拉取代码,不然后面还要处理冲突。
#步骤
先在本地备份代码,到其他地方。
然后回滚到错误提交的前一次提交:
git reset --hard [commit hash]
这时,本地仓库会回退到错误提交前,根据本地备份的代码,补全正确的修改,然后commit,强行 push 到远程,覆盖错误的提交。
git commit -S -am "something"
git push --force
这种方法丑陋又粗暴,还可能失去很多提交信息,但是简单。在单人开发,git 作为版本管理时,可以使用。